2017-06-18 43 views
1

GoogleドライブのJavaScript APIを使用しようとしています。私はOAuth同意も設定しました。しかし、毎回その示すエラー「idpiframe_initialization_failed」エラーを示すGoogleドライブ認証

ないクライアント と のための有効な起源は、問題が実際に何であるか

を「idpiframe_initialization_failed」?私はグーグル、グーグルとグーグルが解決策はありません。私は仮想ホストを作成してlocalhostを試しています。

私たちは確認することができますので、あなたはHTTP呼び出しと応答を提供すべきであるGoogleドキュメント

<html> 
<head></head> 
<body> 
    <script type="text/javascript"> 
    function handleClientLoad() { 
     // Loads the client library and the auth2 library together for efficiency. 
     // Loading the auth2 library is optional here since `gapi.client.init` function will load 
     // it if not already loaded. Loading it upfront can save one network request. 
     gapi.load('client:auth2', initClient); 
    } 

    function initClient() { 
     // Initialize the client with API key and People API, and initialize OAuth with an 
     // OAuth 2.0 client ID and scopes (space delimited string) to request access. 
     gapi.client.init({ 
      apiKey: 'APIKEY', 
      discoveryDocs: ["https://people.googleapis.com/$discovery/rest?version=v1"], 
      clientId: 'CLIENTID.apps.googleusercontent.com ', 
      scope: 'profile' 
     }).then(function() { 
      // Listen for sign-in state changes. 
      gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus); 

      // Handle the initial sign-in state. 
      updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get()); 
     }); 
    } 

    function updateSigninStatus(isSignedIn) { 
     // When signin status changes, this function is called. 
     // If the signin status is changed to signedIn, we make an API call. 
     if (isSignedIn) { 
      makeApiCall(); 
     } 
    } 

    function handleSignInClick(event) { 
     // Ideally the button should only show up after gapi.client.init finishes, so that this 
     // handler won't be called before OAuth is initialized. 
     gapi.auth2.getAuthInstance().signIn(); 
    } 

    function handleSignOutClick(event) { 
     gapi.auth2.getAuthInstance().signOut(); 
    } 

    function makeApiCall() { 
     // Make an API call to the People API, and print the user's given name. 
     gapi.client.people.people.get({ 
      'resourceName': 'people/me', 
      'requestMask.includeField': 'person.names' 
     }).then(function(response) { 
      console.log('Hello, ' + response.result.names[0].givenName); 
     }, function(reason) { 
      console.log('Error: ' + reason.result.error.message); 
     }); 
    } 
    </script> 
    <script async defer src="https://apis.google.com/js/api.js" 
    onload="this.onload=function(){};handleClientLoad()" 
    onreadystatechange="if (this.readyState === 'complete') this.onload()"> 
    </script> 
    <button id="signin-button" onclick="handleSignInClick()">Sign In</button> 
    <button id="signout-button" onclick="handleSignOutClick()">Sign Out</button> 
</body> 
</html> 

答えて

0

からのサンプルを使用しています。

「クライアントの有効な発信元ではありません」というメッセージは、Webページを提供しているURLがAPIコンソールで設定したものではないことを示しています。

1

Googleドライブのjavascript APIのクイックスタートの例で同じ問題が発生しました。 Google Chromeのキャッシュを最初から削除してから、その作業が完了しました... 希望すると助かります! :)

関連する問題