43

を使用して、ノードアプリで簡単な連絡フォームを作成しようとしていますnodemailer。この目的のために作成した gmail アカウントから、すべてのメッセージを個人のメールに送信したいと考えています。

クライアント側では、顧客の名前/メール/メッセージを取得してサーバーに送信するだけです。ローカルでは問題なく動作しますが、展開すると機能しません(ところでherokuで)。

簡単な検索の後、 Google Developers Console からClientIdandを生成する必要があるようですがClientSecret、「リフレッシュ トークン」の生成に関しては、完全に失われています。

    var smtpTransport = nodemailer.createTransport("SMTP",{
        service:"Gmail",
        auth:{
            XOAuth2: {
                user:"myaccount@gmail.com",
                clientId:"",
                clientSecret:"",
                refreshToken:""
            }
        }
    });

私は混乱しています: リフレッシュトークンとは正確には何ですか?どうすれば取得できますか?

4

2 に答える 2

106

この回答の元の作成者によるメモ:

というわけで、やっと理解できました。それについてこれ以上のリソースを見つけることができなかったことに驚いていますGmailNodemailer

ここで答えを見つけました:http://masashi-k.blogspot.fr/2013/06/sending-mail-with-gmail-using-xoauth2.html

既にユーザーを持っていて、うまく動作しない場合は、新しいユーザーを作成してみてください。それは私の場合でした。

これが誰かに役立つことを願っています、

乾杯


質問 1: リフレッシュ トークンとは正確には何ですか?

ここにあるドキュメントから:

更新トークンは、ユーザーがアプリケーションにログインしていない間、アプリが Google API に継続的にアクセスできるようにします。

(...)

考慮事項:

  • 更新トークンは、コード交換フローを初めて実行するときにのみ取得できるため、安全かつ永続的に保存してください。

  • 発行される更新トークンの数には制限があります。クライアントとユーザーの組み合わせごとに 1 つの制限があり、すべてのクライアントでユーザーごとに別の制限があります。アプリケーションが要求する更新トークンが多すぎると、これらの制限に達する可能性があり、その場合、古い更新トークンは機能しなくなります。

オフライン アクセスおよび更新トークンの使用も参照してください。


質問 2: どうすれば取得できますか?

ステップ 1: Google Developers Consoleで OAuth 2.0 資格情報を取得する

ここに記載されているように、次のことを行う必要があります。

  1. Google Developers Consoleに移動します。
  2. プロジェクトを選択するか、新しいプロジェクトを作成します。
  3. 左側のサイドバーで、APIs & authを展開します。次に、[ API ] をクリックします。API セクションの [有効な API]リンクを選択して、有効なすべての API のリストを表示します。「Gmail API」が有効な API のリストにあることを確認します。有効にしていない場合は、API のリスト (Google Apps APIs の下) から Gmail API を選択し、 API の [API を有効にする] ボタンを選択します。
  4. 左側のサイドバーで、Credentialsを選択します。
  5. プロジェクトの OAuth 2.0 資格情報をまだ作成していない場合は、[ Create new Client ID ] をクリックして作成し、資格情報の作成に必要な情報を提供します。

上にリンクされているブログ投稿の画像

  1. 各資格情報に関連付けられている表で、クライアント IDクライアント シークレットを探します。

上にリンクされているブログ投稿の画像


コンソールで新しいユーザーを作成するときは、リダイレクト URIhttps://developers.google.com/oauthplayground として指定することに特に注意してください。そうしないと、エラーが発生します。


ステップ 2: Google OAuth2.0 Playgroundで更新トークンを取得する

  1. Google Oauth2.0 Playgroundに移動します。
  2. 右上の歯車ボタンをクリックします。Google Developers Consoleから取得したClient IDClient Secretを設定し、 Access token locationAuthorization header w/ Bearer prefixとして選択します。この構成オーバーレイを閉じます。

上のブログ投稿の画像

  1. スコープを設定します。https://mail.google.com/必要に応じて使用してくださいnodemailer。次に、[ API の承認] ボタンをクリックします。

ここに画像の説明を入力

  1. OAuth2.0 認証の後、トークンの認証コードを交換すれば出来上がりです! リフレッシュトークンはすぐに使用できます

上記のブログ投稿の画像

于 2014-06-09T15:29:07.013 に答える