use*_*596 8 android oauth token
我正在开发一个Android应用程序,需要从谷歌获取"我"信息,但我总是在响应代码401或403中结束.我做错了什么?这是我的代码:
private static final String GOOGLE_AUTH_TOKEN_TYPE = "oauth2:https://www.googleapis.com/auth/plus.me";
Run Code Online (Sandbox Code Playgroud)
我得到了oauth令牌(注意......下面的代码缩短了):
Account googleAccount = (AccountManager) getSystemService(ACCOUNT_SERVICE).getAccountsByType("com.google")[0];
final Bundle bundle = manager.getAuthToken(googleAccount, GOOGLE_AUTH_TOKEN_TYPE, true, null, null).getResult();
String authToken = bundle.getString(AccountManager.KEY_AUTHTOKEN);
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都很好......我现在有了一个令牌,所以这里的一切看起
现在得到我的信息:
String GOOGLE_ME_URL = "https://www.googleapis.com/plus/v1/people/me";
final DefaultHttpClient client = new DefaultHttpClient();
final HttpGet request = new HttpGet(GOOGLE_ME_URL);
request.addHeader("Authorization", "OAuth=" + authToken);
final HttpResponse response = client.execute(request);
Run Code Online (Sandbox Code Playgroud)
这给出了响应代码401.
我也尝试过:
final DefaultHttpClient client = new DefaultHttpClient();
final HttpGet request = new HttpGet(GOOGLE_ME_URL + "?access_token=" + authToken);
final HttpResponse response = client.execute(request);
Run Code Online (Sandbox Code Playgroud)
这给出了响应代码403 - 比如"超出每日限制.请注册".
我究竟做错了什么?我错过了什么?该怎么做?
谢谢
//以下编辑更多调查:我在code.google.com/apis/console中添加了一个项目,并从中生成了密钥并放入网址,如:https: //www.googleapis.com/plus/v1/people/me?key = my_generated_key&access_token = "+ authToken.现在通话工作正常,我收到了200条回复,并提供了正确的信息.但我真的不想使用这种方法,如果我不需要和根据谷歌我不应该"•如果请求需要授权(例如请求个人的私人数据),那么它必须包含OAuth 2.0令牌.它也可能包含API密钥,但它不必包含." - 来自developers.google.com/+/api/oauth.
另一件事:如果我尝试另一个网址,如" https://www.googleapis.com/oauth2/v1/tokeninfo?access_token="+ authToken,它可以正常工作.
Chi*_*hah 13
问题是关于传递给请求的简单api密钥.
如果请求中未包含关键参数,或者未针对该项目激活Google+ API,则会收到错误消息:"超出每日限制.请注册".
要解决此问题,您需要执行以下操作:
Run Code Online (Sandbox Code Playgroud)GOOGLE_ME_URL + "?access_token=" + authToken + "&key=" + MY_SIMPLE_API_KEY
归档时间: |
|
查看次数: |
21727 次 |
最近记录: |