0

Googleシートから短いデータを抽出しようとしていますが、その流れは次のとおりです。 Googleシートv4 APIがNode.jsを使用して呼び出し、結果が矛盾します

  • のOAuth2フローごとにトークンをキャッシュ/保存:ユーザー(オフラインアクセスタイプ)を承認

    • キャッシュされたトークンをロードし、それを使用してデータを抽出します。

    しかし、一度サーバーにアップロードすると、返された結果に一貫性がなくなります。

    ほとんどの場合正しいデータが返され、私のローカルでは正常に動作するため、何が原因なのかわかりません。

    エラーメッセージ。

    Google sheet API read: Error: The request is missing a valid API key. 
    

    サーバー情報:Google App Engine、試用版、

    runtime: nodejs 
    env: flex 
    

    node.jsコードは以下のとおりです。

    getUser(id) { 
    
        this.sheets.spreadsheets.values.get({ 
        auth: this.oauth2Client, 
        spreadsheetId: id, 
        range: 'Sheet1!A1:E' 
        }, (err, response) => { 
    
        if(err) { 
    
         this.reject({ 
         status: 0, 
         message: "Google sheet API read: " + err 
         }); 
         return; 
        } 
    
        // The rest is omitted. 
    
        }) 
    } 
    

    ここでテストリクエストを試すことができます(デバッグのためのセキュリティ対策は追加していません)。このthreadから基づい

    https://deep-contact-179901.appspot.com/v1/google/users

  • 答えて

    0

    、すべてのGoogle APIを使用すると、Google Developer Consoleにプロジェクトを作成し、公開データにアクセスするためにも、自分自身と自分のアプリケーションを特定する必要があります。 Google Developer Consoleにアクセスし、公開APIキーを作成します。 GoogleスプレッドシートAPIを有効にすることを忘れないでください。次に、リクエストにパラメータとしてkey=[YourKey]を追加します。

    Google sheet API read: Error: The request is missing a valid API key. 
    

    Googleに自分自身を特定していないことを意味します。 2015年にGoogle Startでは、あなたが誰であるかGoogleに知らせずにGoogle APIを使用するだけで自分自身を特定することを要求する必要があります。あなたはGoogle developer consoleにプロジェクトを作成することでそれを行います。 APIキーを作成し、すべてのリクエストでそのAPIキーを使用します。これはパブリックデータでのみ機能します。

    注:プライベートユーザーデータを使用すると、OAuthの使用のいずれかaccess_tokenは=を使用する必要があるでしょう、あなたのトークンまたはアクセストークンは、APIキーと同じではありません

    ヘッダに設定してください。

    +0

    ありがとうございますが、どのように働くことがありますか? – inikahnamanyacinta

    +0

    予想通りにVMインスタンスに移行しました.Google Appの障害でした – inikahnamanyacinta

    関連する問題