0

次のGoogleApiの例を実行しようとしています。

<:html:>
  <:body:>
    <:div id='content':>
      <:h1:>Events<:/h1:>
      <:ul id='events':><:/ul:>
    <:/div:>
    <:a href='#' id='authorize-button' onclick='handleAuthClick();':>Login<:/a:>

    <:script:>

var clientId = redacted; 
var apiKey = redacted;
var scopes = 'https://www.googleapis.com/auth/calendar';

      function handleClientLoad() {
  gapi.client.setApiKey(apiKey);
  window.setTimeout(checkAuth,1);
  checkAuth();
}

function checkAuth() {
  gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: true},
      handleAuthResult);
}

function handleAuthResult(authResult) {
  var authorizeButton = document.getElementById('authorize-button');
  if (authResult) {
    authorizeButton.style.visibility = 'hidden';
    makeApiCall();
  } else {
    authorizeButton.style.visibility = '';
    authorizeButton.onclick = handleAuthClick;
   }
}

function handleAuthClick(event) {
  gapi.auth.authorize(
      {client_id: clientId, scope: scopes, immediate: false},
      handleAuthResult);
  return false;
}
function makeApiCall() {
  gapi.client.load('calendar', 'v3', function() {
    var request = gapi.client.calendar.events.list({
      'calendarId': 'primary'
    });

    request.execute(function(resp) {
      for (var i = 0; i <: resp.items.length; i++) {
        var li = document.createElement('li');
        li.appendChild(document.createTextNode(resp.items[i].summary));
        document.getElementById('events').appendChild(li);
      }
    });
  });
}
    <:/script:>
    <:script src="https://apis.google.com/js/client.js?onload=handleClientLoad":><:/script:>
  <:/body:>
<:/html:>

ファイルを実行するたびに、2つのエラーが発生します。

gapi.clientオブジェクトがnullまたは未定義です

window.sessionStorage.lengthオブジェクトがnullまたは未定義です

最後のエラーについては、このURLをソースとして提供します: https ://apis.google.com/ /scs/apps-static/ /js/k=oz.gapi.nl.4xKjGS6fluU.O/m=client/am= QQ / rt = j / d = 1 / rs = AItRSTMdnq2AHV2okN-h3tZllkPQibG86w / cb = gapi.loaded_0

私はIE8を実行していますが、誰かが何が悪いのか考えていますか?

4

2 に答える 2

0

ここの公式ドキュメントページからの同じ例(Hello Worldのような)に気づきました

変数を使用することを宣言しています:

  // The Browser API key obtained from the Google Developers Console.
  var developerKey = 'xxxxxxxYYYYYYYY-12345678';

  // The Client ID obtained from the Google Developers Console. Replace with your own Client ID.
  var clientId = "1234567890-abcdefghijklmnopqrstuvwxyz.apps.googleusercontent.com"

  // Scope to use to access user's photos.
  var scope = ['https://www.googleapis.com/auth/photos'];

ただし、ブラウザ API キーが使用されている場合、developerKey 変数は、API にアクセスできないというエラーを返し、サーバー キーを作成して代わりにそれを使用すると、すべて正常に動作します。

于 2016-06-10T10:58:28.113 に答える