2012-01-24 17 views
25

मैं Google कैलेंडर API और प्रमाणीकरण पर दस्तावेज़ों का अध्ययन कर रहा हूं (http://code.google.com/apis/calendar/v3/using.html#auth)। ऐसा लगता है कि यहां उल्लिखित उपयोग का मामला एक ऐसा एप्लिकेशन लिख रहा है जो उपयोगकर्ता के कैलेंडर तक पहुंचता है। हालांकि, मैं एक वेब पेज लिख रहा हूं जो वेब साइट के मालिक का कैलेंडर एक्सेस करेगा और केवल उस कैलेंडर की जानकारी प्रदर्शित करेगा। इसलिए, मैं नहीं चाहता कि उपयोगकर्ता अपनी Google खाता जानकारी में प्रवेश करे जो ओएथ करना चाहता है।ओएथ प्रमाणीकरण के बिना मैं Google कैलेंडर API से कैसे कनेक्ट करूं?

असल में, मैं एक निजी Google कैलेंडर तक पहुंचने का तरीका ढूंढ रहा हूं और सीधे सेवा के लिए प्रमाण पत्र पास करके इसे प्रमाणित करता हूं।

यहां एक समान प्रश्न हैं: How to use OAuth with Google Calendar to access only ONE calendar? जो यह इंगित करता है कि पोस्टर मूल रूप से प्रमाण पत्र सीधे पास कर रहा था। क्या यह सुविधा अभी भी उपलब्ध है? मैंने आपके द्वारा वर्णित उपयोग केस को कैसे संभाला है?

उत्तर

9

मुझे एक ही समस्या है। मुझे यह 3 भाग ट्यूटोरियल मिला जो आपको वही बनाता है जो आप चाहते हैं। Web page for bookings
आप एक ऐसा वेब पेज बनाते हैं जो सीधे आपके कैलेंडर में (उपयोगकर्ताओं को नहीं) लिखता है और यही कारण है कि उपयोगकर्ताओं को आपको अपने कैलेंडर तक पहुंचने की अनुमति नहीं देनी पड़ती है।
यह समाधान मेरे लिए काम करता है, लेकिन आपको इसे सीधे REST के साथ प्रबंधित करना होगा।

मैं google api php क्लाइंट का उपयोग करने का एक तरीका ढूंढ रहा हूं क्योंकि यह थोड़ा आसान लगता है। लेकिन मुझे अभी तक एक तरीका नहीं मिला है कि Google- api-php-client/src/config.php फ़ाइल को सही तरीके से कैसे संपादित करें, जिस तरह से आप स्वयं को वास्तविक उपयोगकर्ता नहीं प्रमाणित करते हैं, क्योंकि आपको अपने कैलेंडर तक पहुंच की आवश्यकता है। अगर किसी के पास कोई विचार या स्क्रिप्ट है जो ऐसा करेगी तो मैं बहुत आभारी रहूंगा।

+0

3 भाग से संशोधन है जिस लेख को आप इंगित करते हैं वह उत्तर लगता है। जैसे ही मेरे पास मौका होता है, मैं इसका प्रयास करूँगा और अगर यह काम करता है तो इसे उत्तर के रूप में चिह्नित करें। मैंने आरईएसटी एपीआई का उपयोग करने और किसी भी तरह से जेएसओएन डेटा से निपटने की योजना बनाई थी, इसलिए मुझे इसे जाना चाहिए। धन्यवाद! –

+0

यह काम किया! कुंजी एप्लिकेशन को "इंस्टॉल किए गए एप्लिकेशन" के रूप में देख रही है। रीफ्रेश टोकन प्राप्त करने के लिए अस्थायी रूप से कुछ अड़चन करने के बाद, आप उपयोगकर्ता को संकेत दिए बिना एक नया एक्सेस टोकन प्राप्त करने के लिए रीफ्रेश टोकन का उपयोग कर सकते हैं। –

14

यदि मैं गलत नहीं हूँ, वे इस के लिए सेवा खाता शुरू की है अब: https://developers.google.com/accounts/docs/OAuth2ServiceAccount

संपादित करें:

यहाँ अपने पूर्वानुमान API की

session_start(); 
require_once "google-api-php-client/src/Google_Client.php"; 
require_once "google-api-php-client/src/contrib/Google_CalendarService.php"; 

const CLIENT_ID = '...'; 
const SERVICE_ACCOUNT_NAME = '...'; 

// Make sure you keep your key.p12 file in a secure location, and isn't 
// readable by others. 
const KEY_FILE = '...'; 

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


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

// Load the key in PKCS 12 format (you need to download this from the 
// Google API Console when the service account was created. 
$key = file_get_contents(KEY_FILE); 
$client->setAssertionCredentials(new Google_AssertionCredentials(
    SERVICE_ACCOUNT_NAME, 
    array('https://www.googleapis.com/auth/calendar', "https://www.googleapis.com/auth/calendar.readonly"), 
    $key) 
); 

$client->setClientId(CLIENT_ID); 
$service = new Google_CalendarService($client); 

//Save token in session 
if ($client->getAccessToken()) { 
    $_SESSION['token'] = $client->getAccessToken(); 
} 

//And now you can use the code in their PHP examples, like: $service->events->listEvents(...) 
+0

अफसोस की बात है, उन्होंने अभी तक Google कैलेंडर समर्थन नहीं जोड़ा है। – thelastshadow

+1

हां। मैंने अपनी भविष्यवाणी API से सेवा कोड संशोधित किया और यह वास्तव में कैलेंडर –

+0

के लिए काम किया? यह जानना उपयोगी है। धन्यवाद। – thelastshadow