我试图通过Ruby在Google Partner API上调用一些方法。不幸的是,我无法解决以下问题:
Google::Apis::ClientError: forbidden: Request had insufficient authentication scopes.
我们已经能够使用相同的方法连接到其他api(驱动器/表格)。我已将合作伙伴API添加到我们的开发人员控制台,与Drive和Sheets相同。除了不同的API类和范围之外,下面的代码没有区别。
我的代码摘录如下:
require 'google/apis/partners_v2'
include ::Google::Apis::PartnersV2
REFRESH_TOKEN = 'redacted'
client_id = Google::Auth::ClientId.from_file(Rails.root.to_s + '/config/google_client_secret.json')
@signet = Signet::OAuth2::Client.new(
client_id: client_id.id,
client_secret: client_id.secret,
scope: 'https://www.googleapis.com/auth/partners',
refresh_token: REFRESH_TOKEN,
token_credential_uri: 'https://accounts.google.com/o/oauth2/token',
authorization_uri: 'https://accounts.google.com/o/oauth2/auth',
grant_type: 'refresh_token'
)
@signet.fetch_access_token!
api = Google::Apis::PartnersV2::PartnersService.new
api.authorization = @signet.access_token
api.list_companies
更新
现在再次使用相关用户验证用户后,我收到了:
Google::Apis::ClientError: forbidden: The caller does not have permission