2012-08-08 15 views
5

मैं सेवा खाते से Google कैलेंडर पर नया ईवेंट बनाना चाहता हूं। मैं सही ढंग से एक्सेस कर सकता हूं और अपने सभी कैलेंडर सूचीबद्ध कर सकता हूं। लेकिन जब मैं एक नया कार्यक्रम बनाना चाहता हूं तो प्रतिक्रिया 403 निषिद्ध है।Google सेवा खाते से Google कैलेंडर ईवेंट संपादित करें: 403

मेरे कोड:

require_once 'src/Google_Client.php'; 
require_once 'src/contrib/Google_CalendarService.php'; 

session_start(); 

const CLIENT_ID = 'XXXXXXXXXX.apps.googleusercontent.com'; 
const SERVICE_ACCOUNT_NAME = '[email protected]'; 

const KEY_FILE = 'google_src/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-privatekey.p12'; 

$client = new Google_Client(); 
$client->setApplicationName("APP_NAME"); 

if (isset($_SESSION['token'])) { 
$client->setAccessToken($_SESSION['token']); 
} 

$key = file_get_contents(KEY_FILE); 
$client->setClientId(CLIENT_ID); 
$client->setAssertionCredentials(new Google_AssertionCredentials(
    SERVICE_ACCOUNT_NAME, 
    'https://www.google.com/calendar/feeds/MY_CALENDAR_ID/private/full/', 
    $key) 
); 

$client->setClientId(CLIENT_ID); 
$cal = new Google_CalendarService($client); 
$event = new Google_Event(); 
$event->setSummary('Bon dia pel matí!'); 
$event->setLocation('Somewhere'); 
$start = new Google_EventDateTime(); 
$start->setDateTime('2012-08-06T10:00:00.000-07:00'); 
$event->setStart($start); 
$end = new Google_EventDateTime(); 
$end->setDateTime('2012-09-06T10:25:00.000-07:00'); 
$event->setEnd($end); 

$createdEvent = $cal->events->insert(CALENDAR_NAME, $event); 

और सर्वर प्रतिक्रिया:

(403) Forbidden 

कोई भी विचार? शायद अन्य दायरे, या संपादन घटनाओं को अनुमति दें (मुझे नहीं पता कि मैं इसे कहां कॉन्फ़िगर कर सकता हूं और मैंने इसे खोजा है, वादा किया है)

बेशक, मेरा कैलेंडर एक सार्वजनिक कैलेंडर है।

किसी भी मदद का स्वागत किया जाएगा :)

धन्यवाद!

+0

शायद यह एक कारण के लिए मना किया है? – Peon

+0

हे, शायद, लेकिन मुझे नहीं पता कि कुछ जगह है जहां मैं घटनाओं को संपादित करने की अनुमति दे सकता हूं। कैलेंडर कॉन्फ़िगरेशन में मुझे कुछ भी नहीं दिखाई देता है, और मैं कैलेंडर एपीआई सक्रिय करता हूं। मुझे कैंडर्स और घटनाओं को सूचीबद्ध करने में कोई समस्या नहीं है। केवल संपादित करें और बनाएं। लेकिन वास्तव में, मैं इस विकल्प को खोजने में कई बार व्यतीत करता हूं, और ऐसा करने के लिए कुछ भी नहीं है: एस धन्यवाद – eMarine

उत्तर

12

मैंने इसे हल किया, और मुद्दा कोड नहीं था, यह ठीक काम करता है।

समस्या मेरा कैलेंडर साझा कर रहा था। कुछ जो मुझे नहीं पता था।

सेवा कैलेंडर से अपने कैलेंडर ईवेंट को संपादित करने की अनुमति देने के लिए, Google एपी कंसोल में आपके द्वारा किए गए सभी चरणों के साथ पर्याप्त नहीं है, आपको ईमेल पर अपने कैलेंडर कॉन्फ़िगरेशन (कैलेंडर कॉन्फ़िगरेशन -> इस कैलेंडर को साझा करें) से अनुमति देना होगा खाता Google एपी कंसोल (ईमेल एड्रेस) में निर्दिष्ट है।

यह एक समस्या हो सकती है यदि यह एक व्यवसाय खाता है, तो आपको खाता व्यवस्थापक से संपर्क करना होगा।

यहां दिखाया गया कोड सही तरीके से काम करता है, इसलिए मुझे उम्मीद है कि यह किसी की मदद करेगा, बस याद रखें कि आपको Google एपी क्लाइंट के 475 संस्करण का उपयोग करना होगा।

आप इस लिंक पर पा सकते हैं: http://google-api-php-client.googlecode.com/svn/trunk/src/

+0

यह मेरे लिए काम करता है। मैंने अभी हमारे खाता व्यवस्थापक को मेरे सेवा खाते के ईमेल पते के साथ कैलेंडर साझा किया था। धन्यवाद! –

+0

धन्यवाद, धन्यवाद, धन्यवाद! यह वही है जिसे मैं देख रहा था! –

+0

मैं घंटों के लिए समाधान की तलाश में था! उत्तर के लिए धन्यवाद। – stil

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

  • कोई संबंधित समस्या नहीं^_^