我正在使用 GoogleUtilAuth.getToken() 生成 token 。我还生成了两个客户端 ID,一个用于网页,一个用于 Android 应用程序,两者都在同一个项目中。点击此链接
verification from back end server
这是我的代码:
package com.example.tokengenerate;
import java.io.IOException;
import com.google.android.gms.auth.GoogleAuthException;
import com.google.android.gms.auth.GoogleAuthUtil;
import com.google.android.gms.auth.UserRecoverableAuthException;
import com.google.android.gms.common.Scopes;
import android.os.AsyncTask;
import android.os.Bundle;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView tv;
String scope="audience:server:client_id:CLIENTID OF WEBPAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv =(TextView)findViewById(R.id.printId);
new AsyncTask<Void, Void, Void>() {
String id=null;
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
tv.setText(id);
super.onPostExecute(result);
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
String[] account=getAccountNames();
for(int i =0;i<account.length;i++)
{
try {
Log.e("account name", account[i]);
id=GoogleAuthUtil.getToken(MainActivity.this, account[i], scope);
Log.e("google id",id);
} catch (UserRecoverableAuthException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (GoogleAuthException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
}.execute(null,null,null);
}
private String[] getAccountNames() {
AccountManager mAccountManager = AccountManager.get(this);
Account[] accounts = mAccountManager.getAccountsByType(
GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
String[] names = new String[accounts.length];
for (int i = 0; i < names.length; i++) {
names[i] = accounts[i].name;
}
return names;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
这是我的 Logcat:
08-27 19:19:54.641: W/System.err(9792): com.google.android.gms.auth.GoogleAuthException: Unknown
08-27 19:19:54.651: W/System.err(9792): at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
08-27 19:19:54.651: W/System.err(9792): at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
08-27 19:19:54.651: W/System.err(9792): at com.example.tokengenerate.MainActivity$1.doInBackground(MainActivity.java:45)
08-27 19:19:54.661: W/System.err(9792): at com.example.tokengenerate.MainActivity$1.doInBackground(MainActivity.java:1)
08-27 19:19:54.661: W/System.err(9792): at android.os.AsyncTask$2.call(AsyncTask.java:264)
08-27 19:19:54.661: W/System.err(9792): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
08-27 19:19:54.661: W/System.err(9792): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
08-27 19:19:54.661: W/System.err(9792): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
08-27 19:19:54.661: W/System.err(9792): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
08-27 19:19:54.661: W/System.err(9792): at java.lang.Thread.run(Thread.java:864)
完全卡住了,请帮忙。没明白我要去的地方
最佳答案
使用此代码获取范围
String scope = "oauth2:" + Scopes.PROFILE;
并在这里使用这个scpe
id=GoogleAuthUtil.getToken(MainActivity.this, account[i], scope);
然后你可以在变量“id”中获取你的访问 token 。简单方法。
关于android - GoogleAuthException 未知来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18467847/
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
我有一个Rails应用程序,它在名为properties的字段中存储序列化哈希。虽然哈希键是未知的,所以我不知道有什么方法可以通过强参数实现这一点。谷歌搜索时,我发现了这个:https://github.com/rails/rails/issues/9454,但我想不出具体的解决方案。基本上,我的问题是:如何配置强参数以允许使用未知键的散列?感谢大家的帮助! 最佳答案 我最近遇到了同样的问题,我使用来自https://github.com/rails/rails/issues/9454的@fxn方法解决了它对于以properties
尝试通过SSL连接到ImgurAPI时出现错误。这是代码和错误:API_URI=URI.parse('https://api.imgur.com')API_PUBLIC_KEY='Client-ID--'ENDPOINTS={:image=>'/3/image',:gallery=>'/3/gallery'}#Public:Uploadanimage##args-Theimagepathfortheimagetoupload#defupload(image_path)http=Net::HTTP.new(API_URI.host)http.use_ssl=truehttp.verify
我正在尝试使用以下方法更新rubygems:gemupdate--system但是我得到了错误:ERROR:Whileexecutinggem...(Gem::RemoteFetcher::UnknownHostError)nosuchname(https://rubygems.org/specs.4.8.gz). 最佳答案 不确定您安装的是哪个版本的rubygems,但是可以通过三种方式修复:网络问题-稍后重试。您的版本已变砖无法更新,您需要以其他方式安装NOTE:RubyGems1.1and1.2haveproblems
当我尝试在我的应用程序中加载任何yaml文件时,出现此错误:Psych::BadAlias:Unknownalias:default/Users/luizkowalski/.rbenv/versions/2.2.3/lib/ruby/2.2.0/psych/visitors/to_ruby.rb:385:in`visit_Psych_Nodes_Alias'/Users/luizkowalski/.rbenv/versions/2.2.3/lib/ruby/2.2.0/psych/visitors/visitor.rb:15:in`visit'/Users/luizkowalski/.
我正在尝试使用wicked_pdf(版本1.1)和wkhtmltopdf-binarygem从html页面创建pdf。我的html页面包含一个日历表情符号,无论我使用什么字体,它都能在浏览器中很好地显示unicode{font-family:'OpenSansEmoji',sans-serif;}@font-face{font-family:'OpenSansEmoji';src:url(data:font/truetype;charset=utf-8;base64,)format('truetype');}📅但是,当我尝试使用Rails控制台中gem的WickedPd
我从Rails3.0迁移到3.2。当我尝试显示页面时出现错误,只有这个小堆栈跟踪:SystemStackErrorinUserController#showstackleveltoodeepSystemStackError(stackleveltoodeep):activesupport(3.2.1)lib/active_support/callbacks.rb:415Rendered/home/barbacan/.rvm/gems/ruby-1.9.2-head/gems/actionpack-3.2.1/lib/action_dispatch/middleware/template
运行有问题或需要源码请点赞关注收藏后评论区留言一、利用ContentResolver读写联系人在实际开发中,普通App很少会开放数据接口给其他应用访问。内容组件能够派上用场的情况往往是App想要访问系统应用的通讯数据,比如查看联系人,短信,通话记录等等,以及对这些通讯数据及逆行增删改查。首先要给AndroidMaifest.xml中添加响应的权限配置 下面是往手机通讯录添加联系人信息的例子效果如下分成三个步骤先查出联系人的基本信息,然后查询联系人号码,再查询联系人邮箱代码 ContactAddActivity类packagecom.example.chapter07;importandroid
1.前言 在10.0的系统rom定制化开发中,在系统中有多个launcher的时候,会在开机进入launcher的时候弹窗launcher列表,让用户选择进入哪个launcher,这样显得特别的不方便所以产品开发中,要求用RoleManager的相关api来设置默认Launcher,但是在设置完默认Launcher以后,在安装一款Launcher的时候,默认Launcher就会失效,在系统设置的默认应用中Launcher选项就为空,点击home键的时候会弹出默认Launcher列表,让选择进入哪个默认Launcher.所以需要从安装Launcher的流程来分析相关的设置。来解决问题设置默认La
正在尝试将数据添加到scrapbook_entries的连接表中,其中has_one:scrapbook和has_one:recipe。:recipe和:scrapbook已经存在。我正在尝试添加它们以将它们与scrapbook_entries表链接起来。form_for添加到scrapbook_entries表:scrapbook_entries_path(params[:id]))do|f|%>@recipe.id%>剪贴簿_条目_Controller:defcreate@recipe=Recipe.find(params[:scrapbook_entry][:recipe_id]