0

google-api-nodejs-client に瞬間を正常に挿入できた人はいますか?

何を試しても、一般的な 400「無効な値」エラーが発生しますが、 API Explorerも機能しないため、無効な値を絞り込むことができません。

data-requestvisibleactions パラメータがないためでしょうか? 私はrequire('passport-google-oauth').OAuth2Strategyoauthアクセスを処理するためにpassport.jsを使用しており、その部分は正常に機能していますが、requestvisibleactionsをoauthリクエストフローに組み込む方法がわかりません.これは間違いなくクライアント側のフォームから発生したものではないためです.

これが私がやろうとしていることのスニペットです(最新バージョンのgoogleapisv1.0.2を使用):

var google = require('googleapis')
var auth = new google.auth.OAuth2()
auth.setCredentials({
  'access_token': user.token
})

google.plus('v1').moments.insert({
  collection: 'vault',
  userId: 'me',
  debug: true,
  resource: {
    type: "http://schemas.google.com/AddActivity",
    target: {
      type: "http://schema.org/CreativeWork",
      url: "...omitted...",
      image: "...omitted...",
      description: "test",
      name: "test"
    }
  },
  auth: auth
}, function (err, response) {
  if (err) {
    console.error(err)
    res.send(err.code, err)
  } else {
    console.log(response)
    res.send(200)
  }
})

ref 1 ( の古いバージョンのため古くなっていますgoogleapis)

ref 2 (data-requestvisibleactions の使用がより明白なクライアント側)

4

1 に答える 1

1

request_visible_actionsご想像のとおり、oauth エンドポイントを呼び出す URL の一部としてパラメーターが必要です。

Passport-google-oauth の現在のバージョンは、このパラメータをサポートしていないようです。未解決の問題とプル リクエストのいくつかから判断すると、作成者がそれを追加するリクエストに応答するかどうかも明らかではありません。次の 2 つのオプションがあります。

  1. google-api-nodejs-client に含まれている OAuth サポートを使用するように切り替えます

  2. Passport-google-oauth コードにパッチを適用します。(そして、それが他の誰かに役立つことを期待して、おそらくプルリクエストを送信してください。)

私はpassport.jsや問題のパスポートモジュールを使っていないのでテストはできませんが、githubのレポジトリを参考にするとlib/passport-google-oauth/oauth2.jsの後に以下を挿入できると思います136 行目と return ステートメントの前:

if (options.requestVisibleActions) {
  // Space separated list of allowed app actions
  // as documented at:
  //  https://developers.google.com/+/web/app-activities/#writing_an_app_activity_using_the_google_apis_client_libraries
  //  https://developers.google.com/+/api/moment-types/
  params['request_visible_actions'] = options.requestVisibleActions;
}
于 2014-07-30T13:13:36.263 に答える