2012-11-30 30 views
18

मैं सार्वजनिक कैलेंडर का उपयोग करने की कोशिश कर रहा हूँ के माध्यम से प्राधिकरण के बिना Google कैलेंडर API को एक्सेस करना (से Google कैलेंडर) कि राष्ट्रीय अवकाश होता है: कैलेंडर सार्वजनिक हैजावास्क्रिप्ट

calendarId: 'pt_br.brazilian#[email protected]' 

के रूप में, मैंने सोचा कि मैं करने में सक्षम होगा

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "required", 
    "message": "Login Required", 
    "locationType": "header", 
    "location": "Authorization" 
    } 
    ], 
    "code": 401, 
    "message": "Login Required" 
} 
} 
:

function OnLoadCallback() { 
    var config = { 
     client_id: '32j4lk32j5kj342l5h.googleuser.com', //fake client id 
     scope: 'https://www.googleapis.com/auth/calendar.readonly' 
    }; 
    gapi.client.setApiKey('fId345AM20HXXXXXXXXXXXXXXXXgT3f9kyp2REfkaw2'); //fake api key 
    gapi.client.load('calendar', 'v3', function() { 
     var today = new Date(), 
      request; 

     request = gapi.client.calendar.calendarList.get({ 
      calendarId: 'pt_br.brazilian#[email protected]', 
      timeMin: (new Date(today.getFullYear(), today.getMonth(), today.getDay(), 0, 0, 0, 0)).toISOString(), 
      timeMax: (new Date(today.getFullYear(), today.getMonth(), today.getDay(), 23, 59, 59, 999)).toISOString(), 
      fields: 'items(creator(displayName,email),end,endTimeUnspecified,start,summary)' 
     }); 

     request.execute(function(response) { 
      window.alert('length of items: ' + response.items.length); 
     }); 

    }); 
} 

हालांकि, मैं निम्नलिखित प्रतिक्रिया है, जो एक 401 (अनधिकृत) त्रुटि है मिलती रहती है: पहुँच यह केवल एपीआई कुंजी का उपयोग

क्या कोई यह स्पष्ट कर सकता है कि मैं जो करने की कोशिश कर रहा हूं वह प्राप्त करने योग्य है या नहीं?
और आखिरकार यदि यह संभव है - मुझे अपने वर्तमान कोड का जिक्र करना क्या बदलना है?

उत्तर

31

मैं jQuery का उपयोग करके वही काम करने में सक्षम था।

var mykey = 'your_api_key'; // typically like Gtg-rtZdsreUr_fLfhgPfgff 
var calendarid = 'you_calendar_id'; // will look somewhat like [email protected] 

$.ajax({ 
    type: 'GET', 
    url: encodeURI('https://www.googleapis.com/calendar/v3/calendars/' + calendarid+ '/events?key=' + mykey), 
    dataType: 'json', 
    success: function (response) { 
     //do whatever you want with each 
    }, 
    error: function (response) { 
     //tell that an error has occurred 
    } 
}); 

हालांकि आप निम्नलिखित क्या किया है यह सुनिश्चित करने की जरूरत है: -


1) https://code.google.com/apis/console
2 पर एक परियोजना रजिस्टर) एक सरल एपीआई पहुँच कुंजी
3) सुनिश्चित करें कैलेंडर उत्पन्न एपीआई सेवाओं के तहत सक्रिय है।

https://developers.google.com/google-apps/calendar/firstapp

+0

अपने उदाहरण के साथ कम से अधिक ऊपर दिखाए गए, आप कैसे भेजे आइटम सॉर्ट करने के लिए पर एक संदर्भ के लिए क्या होगा पढ़ें? – blackhawk

+0

@blackhawk आप console.log प्रतिक्रिया कर सकते हैं और देख सकते हैं कि इसमें क्या है। – Gulpener

+0

@ sola-oderinde क्या आप प्रदान कर सकते हैं कि आपको अपने कैलेंडर की आईडी कैसे मिली? * संपादित करें मैंने इसे Google कैलेंडर सेटिंग्स में पाया। इसके अलावा, एफवाईआई, आपका कैलेंडर 404 तक आ जाएगा जब तक कि इसे सार्वजनिक रूप से साझा नहीं किया जाता है। – IamFace