3

Google プラス ストリームにアクティビティを挿入するのに苦労しました。Google開発者ガイドを参照した後。Java の例を見つけました - https://developers.google.com/+/domains/posts/creating

google-api-ruby-clientactivites.insertを使用してクエリを実行する同様の例はありますか。

次の手順に従いました。

omn​​iauth-google-oauth2経由でアプリへのアクセスを定義する

GOOGLE_CONSUMER_KEY      = google_config['KEY']
GOOGLE_CONSUMER_SECRET   = google_config['SECRET']
google_scope = "userinfo.email,
                userinfo.profile,
                plus.login,
                plus.me,
                plus.media.upload,
                plus.profiles.read,
                plus.stream.read,
                plus.stream.write,
                plus.circles.read,
                plus.circles.write"

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :google_oauth2, GOOGLE_CONSUMER_KEY, GOOGLE_CONSUMER_SECRET,
    {
        name: 'google',
      scope: google_scope,
      prompt: 'consent'
    }
end

トークンとリフレッシュ トークンを使用して、API 呼び出しgoogle-api-ruby-clientを実行します。「plus」を使用してアクティビティを一覧表示できますが、アクティビティを挿入するには plusDomains を使用する必要があります。

client = Google::APIClient.new(:application_name =>'Demo GooglePlus',:application_version => '1.0.0')

plus = client.discovered_api('plus')

plusd = client.discovered_api('plusDomain')

client_secrets = Google::APIClient::ClientSecrets.load 

auth=client_secrets.to_authorization

auth.update_token!(access_token: 'aRandomToken', refresh_token: 'aRandomRefreshToken')

result = client.execute(:api_method => plus.activities.list,:parameters => {'collection' => 'public', 'userId' => 'me'}, :authorization => auth)
>> This works, returns the list of activities

plus ドメインの使用

result = client.execute(:api_method => plusd.activities.insert,:parameters => {'collection' => 'public', 'userId' => 'me'}, :authorization => auth)
>> Returns 403 Forbidden

後で、Google APIがドメインAPIを使用するにはドメイン全体の委任が必要であることに気付きました(正しいと思いますか?) https://developers.google.com/+/domains

https://developers.google.com/+/domains/getting-started#accessing_the_apis - 上記のステップ 1 で使用した oauth で十分でしょうか?

https://developers.google.com/+/domains/quickstart/python - RUBYで利用できるものはありますか

サービス アカウントのセットアップも試し、ビジネス アプリを作成し、service_account の例に従いました

しかし、まだ幸運ではありません。

端末で試す

curl -v -H "Content-Type: application/json" -H "Authorization: OAuth ya12.AqwqwwAS1212grcECQ3iVAlg" -d "{'object':{'content':'Test message'},'access':{'items':[{'type' : 'domain'}],'domainRestricted':true}}" -X POST https://www.googleapis.com/plus/v1domains/people/me/activities

Results in ->
{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "forbidden",
    "message": "Forbidden"
   }
  ],
  "code": 403,
  "message": "Forbidden"
 }
}

google plus user steam にアクティビティを挿入する際に助けを得ることができますか?

ありがとう!

4

1 に答える 1

5

最初に確認することがいくつかあります。

  1. Google Apps ドメインを使用しています。この API は、通常の Google+ ユーザーには機能しません。
  2. クライアント ID を作成した Google API コンソールでGoogle+ Domains APIを有効にしました。Google+ Domains APIを見落として、代わりに誤ってGoogle+ APIを有効にすることはよくあります。
  3. Google アプリ ドメインでは、管理者が Google+ を有効にする必要があります。
  4. 標準の OAuth フローまたはドメイン全体の委任を通じて代理を務めているユーザーは、Google+ プロフィールを作成しています。

plus.login次へ:ドメイン API でスコープを使用することはできません。userinfo.* スコープも削除する必要があると思います。Google+ Domains API スコープの完全なリストを参照してください。

また、スコープが正しく定義されていないと思います。完全な URI を使用する必要があると思います。

google_scope = "https://www.googleapis.com/auth/plus.me,
                https://www.googleapis.com/auth/plus.media.upload,
                https://www.googleapis.com/auth/plus.profiles.read,
                https://www.googleapis.com/auth/plus.stream.read,
                https://www.googleapis.com/auth/plus.stream.write,
                https://www.googleapis.com/auth/plus.circles.read,
                https://www.googleapis.com/auth/plus.circles.write"
于 2013-11-08T18:21:08.023 に答える