2017-04-15 15 views
0

次のコードでは認証に失敗していますが、理由を特定できません。どんな助けもありがとう。Gmailのapi認証が機能していません(javascript)

まず、関連するHTML script:今

<script src="https://apis.google.com/js/client.js?onload=handleClientLoad"></script> 

のjavascript:

var clientId = "xxxxxxxx"; 
var apiKey = "xxxxxxxx"; 
var scopes = "https://www.googleapis.com/auth/gmail.send"; 

function handleClientLoad() { 
    gapi.client.setApiKey(apiKey); 
    window.setTimeout(checkAuth, 1); 
} 
function checkAuth() { 
    gapi.auth.authorize({ 
     client_id: clientId, 
     scope: scopes, 
     immediate: true 
    }, handleAuthResult); 
} 
function handleAuthResult(authResult) { 
    if (authResult && !authResult.error) { 
     loadGmailApi(); 
     console.log("gmail authentication passed"); 
    } else { 
     console.log("gmail authentication failed"); 
    } 
} 
function loadGmailApi() { 
    gapi.client.load("gmail", "v1", close); 
} 
function close() { 
    return false; 
} 

答えて

0

は、あなたがおよそAuthentication using the Google APIs Client Library for JavaScript、このマニュアルに従っていることを確認してください。

Gmail APIに対するすべてのリクエストは、認証されたユーザーによって承認されている必要があります。 GmailはOAuth 2.0 protocolを使用してGoogleアカウントを認証し、ユーザーデータへのアクセスを認証します。 Google+ Sign-inを使用して、アプリに「Googleでログインする」認証方法を提供することもできます。

さらに、JavaScript Quickstartが参考になる場合があります。

// Authorization scopes required by the API; multiple scopes can be included, separated by spaces. 
     var SCOPES = 'https://www.googleapis.com/auth/gmail.readonly';  
     var authorizeButton = document.getElementById('authorize-button'); 
     var signoutButton = document.getElementById('signout-button'); 

/** 
* On load, called to load the auth2 library and API client library. 
*/ 
     function handleClientLoad() { 
     gapi.load('client:auth2', initClient); 
     } 

希望します。

0

これで長時間苦労した後、私は最終的に、Webホスティングプロバイダにパッケージされた電子メールサーバを使用してサーバー側でphpを使用する方法を模索することに決めました。だから私はなぜこれが動作していない答えはできませんが、私はサーバー側を使用して電子メールを送信することをお勧めできます。

関連する問題