0

いくつかの例を組み合わせた単純な Ruby コードがあります。Google+ ドメイン API を使用します。すべての手順に従ってサービス アカウント ( https://developers.google.com/+/domains/authentication/delegation ) を承認しましたが、リクエストは 403 Forbidden で失敗します:

{"error"=>{"errors"=>[
{"domain"=>"global", "reason"=>"forbidden", "message"=>"Forbidden"}], 
"code"=>403, "message"=>"Forbidden"}}

Google API Explorer コンソールを使用して実行すると、同じクエリが正常に機能します。サービスアカウントとユーザーアカウントの認証に関係していると思います。私は何を取りこぼしたか?

完全なコードはこちらhttps://github.com/admitriyev/propellant/blob/master/main.rb

[編集済み] インストール済みのアプリ フローを同じコードに追加したところ、問題なく動作しました (完全なコードは上記の Gihub にあります)。ただし、サービスフローで見逃したものはまだわかりません。

4

1 に答える 1

0

私はそれを理解しました、私はそれが承認されるべきである実際のドメインユーザーの電子メールを欠いていました. また、よりクリーンな抽象化である Google::APIClient::JWTAsserter を使用するように切り替えました。

client_asserter = Google::APIClient::JWTAsserter.new(
  config['client_email'],
  PLUS_LOGIN_SCOPE,
  key
)
$client.authorization = client_asserter.authorize(config['user_email'])

私の完全な例はここにあります: https://github.com/admitriyev/propellant/blob/master/main.rb

于 2014-05-22T21:02:53.367 に答える