相关疑难解决方法(0)

使用OAuth2以编程方式向Google进行身份验证

如何以编程方式向Google进行身份验证?现在的ClientLogin(https://developers.google.com/accounts/docs/AuthForInstalledApps)已过时,我们如何能够执行编程认证,以与谷歌的OAuth2?

使用ClientLogin,我们可以 使用电子邮件和密码参数向https://www.google.com/accounts/ClientLogin发送帖子, 并获取身份验证令牌.

使用OAuth2我找不到解决方案!

#

我的应用程序是一个java后台进程.我看到,点击此链接:developers.google.com/accounts/docs/OAuth2InstalledApp#refresh,如何使用刷新的令牌获取新的访问令牌.

问题是,当我有一个新的有效访问令牌时,我找不到一个关于如何实例化Analytics对象(例如)来执行查询的java示例

这是我的代码在调用"execute()"时返回401无效凭据:

public class Test {

static final String client_id = "MY_CLIENT_ID";
static final String client_secret = "MY_SECRET";
static final String appName = "MY_APP";

private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
private static final JsonFactory JSON_FACTORY = new JacksonFactory();

static String access_token = "xxxx";
static String refreshToken = "yyyyy";

public static void main (String args[]){

    try {

        GoogleCredential credential = 
            new GoogleCredential.Builder()
                .setTransport(HTTP_TRANSPORT)
                .setJsonFactory(JSON_FACTORY)
                .setClientSecrets(client_id, client_secret).build();
        credential.setAccessToken(access_token);
        credential.setRefreshToken(refreshToken); …
Run Code Online (Sandbox Code Playgroud)

java google-login google-oauth

26
推荐指数
3
解决办法
7万
查看次数

Google Youtube Analytics API:403尽管有效令牌仍然禁止出现错误

所以,我有一个有效的渠道OAuth令牌.令牌过期后,它会自动刷新.此令牌适用于请求gdata.youtube.com,但由于某种原因被拒绝www.googleapis.com/youtube/analytics/v1/reports.

用于获取令牌的范围是 https://gdata.youtube.com https://www.googleapis.com/auth/yt-analytics.readonly https://www.googleapis.com/auth/youtubepartner

这适用于其他渠道,但不适用于其他渠道.

GET www.googleapis.com/youtube/analytics/v1/reports
  PARAMS
    ?metrics=views
    &ids=channel==...
    &start-date=...
    &end-date=...
  HEADER
    Authorization: Bearer ...
  RESPONSE
    {
      "error": {
        "errors": [
          {
            "domain": "global",
            "reason": "forbidden",
            "message": "Forbidden"
          }
        ],
        "code": 403,
        "message": "Forbidden"
      }
    }
Run Code Online (Sandbox Code Playgroud)

编辑:应该注意的是,当您调用www.googleapis.com/youtube/analytics/v1/reports范围不足时,您会收到以下错误:

{domain:global, reason:insufficientPermissions, message:Insufficient Permission}
Run Code Online (Sandbox Code Playgroud)

这是与403禁止的完全不同的错误.

youtube-api google-oauth

10
推荐指数
1
解决办法
5753
查看次数

使用OAuth 2.0 for Web Server Applications流时无法选择正确的频道

我的应用遵循服务器端授权流程,如https://developers.google.com/youtube/v3/guides/auth/server-side-web-apps中所述.我强迫prompt=select_account.

在最基本的情况下,在"步骤3:Google提示用户同意"中,用户会看到一个屏幕,其中包含一个或多个名为"选择帐户"的帐户.如果用户选择的帐户只有一个与之关联的通道,则流程将直接进入"步骤4:处理OAuth 2.0服务器响应".

如果用户有多个与该帐户关联的频道,则该用户可能会看到另一个标题为"选择您的帐户或品牌帐户"的屏幕.

就我个人而言,我有两个Google帐户:个人帐户和工作帐户,我在"选择帐户"屏幕上看到它们.如果我选择我的个人帐户,我会直接访问该应用程序.如果我选择了我的工作帐户,我会看到其他屏幕,我可以选择我的"个人"工作YouTube频道/帐户或公司范围的共享频道/帐户.我总共可以管理和访问3个YouTube频道/帐户.

问题是某些用户看不到"选择您的帐户或品牌帐户"中列出的所有频道.如果用户同时登录YouTube,他们仍然可以通过YouTube上的右上角帐户选择器访问所有频道,但他们根本无法在选择器中看到这些频道.我曾尝试channels.list在这些情况下调用YT API ,但它不会返回丢失的频道,只返回用户从选择器中选择的频道.

感觉我在这里遗漏了一些明显的东西,但由于我对OAuth流程没有多少控制权,我不确定如何解决这个问题.这对我来说是一个问题,还是我只需要指导用户在他们的最后做点什么?

可能相关的事情:

youtube-api google-oauth youtube-data-api

7
推荐指数
1
解决办法
391
查看次数