2017-03-31 8 views
6

मैं इसgoogle api के साथ स्प्रेडशीट कैसे बनाएं और PHP के साथ उचित अनुमतियां सेट करें?

define('CLIENT_SECRET_PATH', __DIR__ . '/config_api.json'); 
define('ACCESS_TOKEN', '0b502651********c52b3'); 

मैं इस से कोई स्प्रेडशीट बनाने और id और वह URL प्राप्त कर सकते हैं।

$requestBody = new Google_Service_Sheets_Spreadsheet(); 
$response = $service->spreadsheets->create($requestBody); 
print_r($response); 
$new_spr_id = $response['spreadsheetId']; 

लेकिन इस स्प्रेडशीट Google शीट सूची में प्रकट नहीं करता है के रूप में यह है "संरक्षित" या कुछ और। गंभीर त्रुटि:: कॉल अपरिभाषित विधि Google_Service_Drive_Permission को :: setValue()

insertPermission($service, $new_spr_id, '**@gmail.com' , 'user', 'owner'); 
function insertPermission($service, $fileId, $value, $type, $role) { 
    $newPermission = new Google_Service_Drive_Permission(); 
    $newPermission->setValue($value); 
    $newPermission->setType($type); 
    $newPermission->setRole($role); 
    try { 
    return $service->permissions->insert($fileId, $newPermission); 
    } catch (Exception $e) { 
    print "An error occurred: " . $e->getMessage(); 
    } 
    return NULL; 
} 

मैं एक नई स्प्रैडशीट बनाने और उचित स्थापित करने का एक उदाहरण की जरूरत मैं इस के साथ अनुमति सेट लेकिन एक त्रुटि प्राप्त करने के लिए कोशिश कर रहा हूँ इसके लिए अनुमतियां ताकि मैं अपने खाते से इस स्प्रेडशीट को संशोधित कर सकूं।

कई बहुत धन्यवाद!

+0

[इस] (https://developers.google.com/drive/v3/web/manage-sharing) पर्याप्त नहीं है हो सकता है? –

उत्तर

2

मुझे लगता है कि आप गलत API पर हैं। फ़ाइलों के लिए अनुमति सेट करना Drive API permissions में मिलता है।

लेकिन आपके सवाल का जवाब देने के लिए, यहाँ एक नई स्प्रैडशीट spreadsheets.create from the Sheets API का उपयोग कर बनाने का तरीका बताया:

<?php 
/* 
* BEFORE RUNNING: 
* --------------- 
* 1. If not already done, enable the Google Sheets API 
* and check the quota for your project at 
* https://console.developers.google.com/apis/api/sheets 
* 2. Install the PHP client library with Composer. Check installation 
* instructions at https://github.com/google/google-api-php-client. 
*/ 

// Autoload Composer. 
require_once __DIR__ . '/vendor/autoload.php'; 

$client = getClient(); 

$service = new Google_Service_Sheets($client); 

// TODO: Assign values to desired properties of `requestBody`: 
$requestBody = new Google_Service_Sheets_Spreadsheet(); 

$response = $service->spreadsheets->create($requestBody); 

// TODO: Change code below to process the `response` object: 
echo '<pre>', var_export($response, true), '</pre>', "\n"; 

function getClient() { 
    // TODO: Change placeholder below to generate authentication credentials. See 
    // https://developers.google.com/sheets/quickstart/php#step_3_set_up_the_sample 
    // 
    // Authorize using one of the following scopes: 
    // 'https://www.googleapis.com/auth/drive' 
    // 'https://www.googleapis.com/auth/spreadsheets' 
    return null; 
} 
?> 

जब फ़ाइलें बना दिया गया है और अपने Google डिस्क में सहेजे, अब आप डिस्क का उपयोग करके अनुमतियाँ सेट करने के लिए कोशिश कर सकते हैं बाकी एपीआई।

+0

उत्तर के लिए धन्यवाद, लेकिन मैं $ requestBody = new Google_Service_Sheets_Spreadsheet() के साथ एक नई स्प्रेडशीट बनाने में सक्षम हूं; $ प्रतिक्रिया = $ सेवा-> स्प्रेडशीट-> बनाएं ($ अनुरोध बॉडी); मुझे यूआरएल और स्प्रेडशीट की आईडी मिलती है, लेकिन मैं इसे खाते या एपीआई से एक्सेस नहीं कर सकता, इसलिए मैं एपीआई के साथ अनुमतियों को सेट करने के बारे में एक उदाहरण ढूंढ रहा हूं। – SERG

2

आपका कोड कक्षा का पता लगाने में सक्षम नहीं है और Google_Service_Drive_Permission() का उदाहरण बनाने में असमर्थ है। मैं सुझाव दूंगा, Google_Service_Drive_Permission() की ऑब्जेक्ट बनाने के लिए व्यक्तिगत फ़ंक्शन का उपयोग न करें। कोड भाग के भीतर अनुमतियां सेट करने के लिए अपने सभी कोड को रखें, जहां आप फ़ाइल बना रहे हैं। इसके अलावा यदि आप एकाधिक फ़ाइलों का उपयोग कर रहे हैं, तो जांचें कि आपकी फ़ाइलें ठीक से लोड हो रही हैं और PHP पार्सर द्वारा स्थित हैं। चूंकि अपरिभाषित विधि कॉल के लिए घातक त्रुटि एपीआई विधियों के कार्यान्वयन के कारण नहीं है, इसलिए उन तरीकों के लिए कॉल करने के कारण जो मौजूद नहीं हैं या आप PHP पार्सर का पता लगाने में असमर्थ हैं।

संदर्भ के लिए यह उपयोगी

http://hotexamples.com/examples/-/Google_Service_Drive_Permission/setValue/php-google_service_drive_permission-setvalue-method-examples.html

संबंधित मुद्दे