【问题标题】:OAuth in Google Data API using Java使用 Java 的 Google 数据 API 中的 OAuth
【发布时间】:2011-02-02 05:52:21
【问题描述】:

有谁知道任何将 Oauth 与 Google 数据 API 结合使用的 Web 应用程序示例?

【问题讨论】:

  • 我不知道,但您可以随时使用 Google 数据 API (code.google.com/apis/gdata/articles/oauth.html) 检查 OAuth 的 API
  • 我已经检查了那个例子,不知何故它不完整。在授权请求令牌时它只是不起作用。如果用户决定是否授予访问权限,我将如何进入程序?与此无关。
  • 我也试过这个。我的问题是,当有人被重定向到谷歌授权页面并输入他们的用户名、密码并授予访问权限时,我将如何知道他们在我正在编写的程序中是授予访问权限还是拒绝访问权限?我需要从回调 URL 取回授权的请求令牌。

标签: java oauth google-calendar-api


【解决方案1】:

据我了解(如果我错了,请纠正我)。为了取回请求令牌,请将oauth_callback 设置为绝对路径,其中oauth_token 将附加到oath_callback

来自 (http://code.google.com/apis/gdata/docs/auth/oauth.html)

从回调 URL 中提取令牌

当 Google 重定向回您的 应用程序,oauth_token 是 附加到“oauth_callback_url” URL 作为查询参数。您的 然后应用程序应提取 来自其 URL 查询的令牌值 参数并重新建立oauth 参数。

如果您使用的是 Google OAuth 助手,那么您可以试试这个示例。

import com.google.gdata.client.docs.*;
import com.google.gdata.client.authn.oauth.*;

String CONSUMER_KEY = "example.com";
String CONSUMER_SECRET = "abc123doremi";

GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
oauthParameters.setOAuthConsumerKey(CONSUMER_KEY);
oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET);
oauthParameters.setScope("https://docs.google.com/feeds/");
oauthParameters.setOAuthCallback("http://www.example.com/UpgradeToken.jsp");

GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper(new OAuthHmacSha1Signer());
oauthHelper.getUnauthorizedRequestToken(oauthParameters);

这个例子似乎是在 JSP 中编写的。您可以使用框架来使用它。

oauthParameters.setOAuthCallback() 是 Google 添加回调 URL 路径以确保返回其令牌的位置。

【讨论】:

  • 这正是我正在尝试的。当用户授予或拒绝访问权限时,我的真正问题就出现了。我应该如何捕捉那个事件?我需要从 callback_url 查询 oauth_token,但这仅取决于用户是否已授予访问权限。
  • when user grants or denies access 是什么意思?
  • 好吧..一旦我获得授权的 URL,我会将用户重定向到用户提供登录详细信息的那个 URL,然后他会获得可以授予访问该 google 服务数据的屏幕的权限,或者他可以拒绝。
  • 为此,您只能将oauth_callback 分配给授权的URL。如果用户拒绝,您将不会收到任何返回到您的页面的回调。您只能对成功的用户授权进行回调。
  • 我明白你的意思。不知何故,我的回调 url 是只有登录用户才能看到的授权页面之一。但是当 oauth_token 被授予访问权限后附加到回调 url 时,它会将它们收回到登录页面而不是之前的页面。
猜你喜欢
  • 1970-01-01
  • 2013-02-18
  • 1970-01-01
  • 2017-12-21
  • 2019-05-22
  • 2015-12-09
  • 2016-09-14
  • 1970-01-01
  • 2011-04-14
相关资源
最近更新 更多