2016-04-16 2 views
1

javascriptでGmail APIを使用してメールを送信しようとしていますが、401エラー(ログインが必要です)が表示されています。私のアプリケーションはすでに承認されています。私はアクセストークンを持っています。Gmail APIを使用してメールをJavascriptで送信するための認証を設定するにはどうすればよいですか?

これは私が実行しようとしていたコードの私の作品です:

gapi.client.load('gmail', 'v1', 
var email = ''{my mail content}; 

var sendRequest = gapi.client.gmail.users.messages.send({ 
'userId': 'me', 
'resource': { 
    'raw': window.btoa(email).replace(/\+/g, '-').replace(/\//g, '_') 
} 

}); 
return sendRequest.execute(callback); 
}); 

何をすべきか私を助けてください?前もって感謝します。

+0

あなたはAPIドキュメントを読んだことがありますか? – evolutionxbox

+0

はい私は読んだ。しかし、Gmail APIコールを承認するために私の呼び出しでアクセストークンを送信する方法を適切な方法で見つけることができません。 – Aanchal

+0

Nodejsのバックエンド、またはフロントエンドでこれを実行していますか? – Tholle

答えて

1

フロントエンドからメッセージを送信していることを考慮すると、実際にはクライアントライブラリを使用する必要はありません。

// You can test with your own account by getting a token here: 
// https://developers.google.com/oauthplayground/ 
var accessToken = 'ya29...'; 
// Base64-encode the mail and make it URL-safe 
// (replace all '+' with '-' and all '/' with '_') 
var encodedMail = btoa([ 
    'From: [email protected]\r\n', 
    'To: [email protected]\r\n', 
    'Subject: Subject Text\r\n\r\n', 

    'Message Text' 
].join('')).replace(/\+/g, '-').replace(/\//g, '_'); 

$.ajax({ 
    method: 'POST', 
    url: 'https://www.googleapis.com/gmail/v1/users/me/messages/send', 
    headers: { 
    'Authorization': 'Bearer ' + accessToken, 
    'Content-Type': 'application/json' 
    }, 
    data: JSON.stringify({ 
    'raw': encodedMail 
    }) 
}); 

あなただけのメールをエンコードし、API explorer最初にそれを試すことができます:あなたはjQueryのまたは類似のものを使用することができます。

+0

プレーンテキストのf9です。電子メール内にHTMLコードを送信したい場合は、より良いUIが表示されます。 –

+0

@ShubhamNigamあなたはあなたがどのように与えることができるかを見るために[この回答](http://stackoverflow.com/questions/34165219/send-html-email-with-plain-text-fallback-via-gmail-api)をチェックすることができますプレーンテキストとhtmlテキスト代替。 Browserifyを使用している場合は、[小さな依存関係のないモジュール](https://www.npmjs.com/package/gmail-api-create-message-body)を使用することができます。インスピレーションを得るためのコード。 – Tholle

関連する問題