谷歌加上在直播中插入活动



很难将活动插入谷歌加流。参考谷歌开发人员指南后。我找到了 java 的一个例子 - https://developers.google.com/+/domains/posts/creating

是否有类似的示例来执行 google-api-ruby-client 的activites.insert查询。

我遵循了以下步骤:

通过 omniauth-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"列出活动,但要插入活动,我应该使用 plusDomain。

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

使用加域

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

后来我意识到谷歌 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"
 }
}

我可以在谷歌和用户蒸汽上插入活动时获得一些帮助吗?

谢谢!

首先要验证的几件事:

  1. 您正在使用 Google Apps 域。此 API 不适用于普通 Google+ 用户。
  2. 您在创建客户端 ID 的 Google API 控制台中启用了 Google+ Domains API。很容易错过Google+ Domains API,并意外启用Google+ API
  3. 您的 Google App 網域必須由管理員啟用 Google+。
  4. 您通过标准 OAuth 流程或通过全网域委派所代表的用户已创建 Google+ 个人资料。

下一个:不能将plus.login范围与域 API 一起使用。我相信您还需要删除用户信息。查看 Google+ 网域 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"

相关内容

  • 没有找到相关文章

最新更新