通过多活动应用程序的流程,将Google+ api客户端生命周期捆绑在一起的好方法/推荐方法是什么?使活动依赖于onConnected api客户端方法来触发其功能,将其用作一次性"激活"的东西,或者可能完全不同的东西?
我目前正在努力了解如何在我的Android应用中正确使用Google+登录,该应用包含多项活动.
在第一阶段,我们的想法是使用G +登录来验证用户,并能够收到她的电子邮件,发送通知和类似的东西.最终我计划推出其他Google功能,例如地图或其他Google Play服务,所以我认为已经实施它很有用.
但是,我的应用程序没有按预期运行,我已经将问题缩小到这样一个事实,即当存在多个活动时,我还没有理解应用程序周期中的G +登录.
实现此auth方法的正确或推荐方法是什么?可能有一种形式可以指导我朝着正确的方向发展吗?
例如,我发现了一个非常简单的api客户端生命周期图,但这与app流程有什么关系?
最初我有一个登录活动,我在其中放入登录按钮.按照Google的指南,我可以登录,当调用onConnected方法时,我启动Home Activity(有点像应用程序的仪表板或主屏幕).
这有点工作.例如,为每个活动处理onStart和onStop的好方法是什么?我是否应该每次为每项活动重新连接并重新验证api客户端?因此,使用BaseActivity实现所有这些可能是一个好主意.
另一个问题是,我应该使用相同的api客户端对象并以某种方式传递它,或者可能将它存储在Base Activity类中?或者我应该每次创建和初始化一个新的api客户端对象?
如何使用Login Activity对G +进行身份验证,然后只需获取电子邮件并将其存储在本地数据库中,并将用户标记为"已验证"或"活动"等.这样可以防止我每次关闭应用程序或暂停连接时都必须重新进行身份验证,甚至可以节省一些电量.
该应用程序实际上并没有使用G +发布或任何其他类似的功能.理想情况下,它应该可以脱机工作,只需要连接初始身份验证或其他一次性事物.
非常感谢任何正确方向的建议或指示.
编辑:我已经阅读了我能找到的所有使用Google+的指南和教程,并且每个人都从单一活动的角度来解决这个问题.我认为这是一个普遍存在的问题,它将受益于模式或至少一般的指导方针.
我们在https://developers.google.com/gmail/sidebar_gadgets上发现了Gmail边栏小工具的弃用通知,其中指出了
警告:Gmail边栏小工具现已弃用,很快就会停止支持.
本声明和网站不清楚,我们无法找到具有特定日期和影响的任何弃用通知.
此外,由于不推荐使用URL实验室添加小工具,因此无论如何都无法使用此页面的大部分内容.
但是,我们通过市场部署了一个小工具,这对我们的Google Apps操作至关重要,因为Google Apps 50K的联系人限制.
我已经向GWSC提交了一张带有以下问题的票,但我想我也会在这里提到它,因为我们对这个通知有点震惊并且没有通过我们找到的任何渠道共享它.也许我错过了?
任何投入都表示赞赏,因为我特别担心谷歌没有预料到人们会在市场应用程序中使用侧边栏做什么,当他们通过URL实验室拿走小工具时,他们认为他们杀死了使用这些小工具的唯一途径.希望,我担心没有市场应用程序是好的,但......
此致,KAM
通过以下内容,第一次调用它时可以正常工作,但随后的"FirebaseApp名称[DEFAULT]已经存在!"的调用失败了.
public FirebaseDatabase conn(Context c) {
FirebaseOptions options = new FirebaseOptions.Builder()
.setApiKey("key")
.setDatabaseUrl("url")
.setApplicationId("ID")
.build();
/////I tried Try and Catch with no success//////
FirebaseApp app = FirebaseApp.initializeApp(c, options);
/// for this : FirebaseApp app = FirebaseApp.initializeApp(c, options, "some_app");
//// will fail with "FirebaseApp name some_app already exists!"
return FirebaseDatabase.getInstance(app);
}
Run Code Online (Sandbox Code Playgroud)
以上所有内容都是尝试连接到第二个Firebase应用程序.
我们有一个拥有数百万用户的应用程序。在过去的一周里,我们从旧版应用的 Firebase Crashlytics 收到了大约 30 个“速度警报”,错误消息如下:
Fatal Exception: java.lang.SecurityException
GoogleCertificatesRslt: not allowed: pkg=com.example.app, sha1=<sha1 redacted>, atk=false, ver=203914019.true (go/gsrlt)
android.os.Parcel.readException (Parcel.java:1959)
android.os.Parcel.readException (Parcel.java:1905)
com.google.android.gms.common.internal.s.r (s.java:37)
com.google.android.gms.common.internal.W.u (W.java:90)
com.google.android.gms.common.api.internal.At.q (At.java:17)
com.google.android.gms.common.api.internal.rt.run (rt.java:5)
java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:457)
java.util.concurrent.FutureTask.run (FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
com.google.android.gms.internal.ef.run (ef.java:6)
java.lang.Thread.run (Thread.java:764)
Run Code Online (Sandbox Code Playgroud)
它不会影响那么多用户,可能是几百到一千。通常我们不会真正注意到这么小的问题,但是因为对于那些用户来说它似乎一遍又一遍地发生,我们已经收到了所有这些速度警报 - 使其更加明显。
为什么会这样?堆栈跟踪略有不同,但看起来确实与 Google 的 GMS 相关。
我们或我们的用户可以做些什么来避免它?
这个问题似乎分散在 Android 版本和设备供应商之间。
有没有什么方法可以生成访问令牌来测试oauth使用gmail登录?
我创建了一个谷歌应用程序,并得到了客户端和秘密ID.
我知道facebook会允许你这样做这个网址https://developers.facebook.com/tools/accesstoken/
谷歌有这样的方法吗?
谢谢.
如何在mac上使用android studio调试和发布我的SHA1密钥?(这些是Google API密钥所必需的)
最近,我一直在使用Android上的Google API,特别是Google Analytics,AdSense和Tasks API.
我见过Google提供的一些示例,他们使用此语句获取GoogleAccountCredential对象
credential =
GoogleAccountCredential.usingOAuth2(this, Collections.singleton(TasksScopes.TASKS));
但是,如果我查看以下文档:
http://developer.android.com/google/auth/http-auth.html
http://developer.android.com/google/play-services/auth.html
他们都提到了下面用于获取令牌的方法:
token = GoogleAuthUtil.getToken(mActivity, mEmail, mScope);
我很困惑在哪种场景中使用哪一个以及为什么.我一直在使用Method no.1成功而无需在首选项中保留令牌(我猜这是由GoogleAccountCredential自动完成的)
任何人都可以告诉我为什么有人会使用第一种方法而不是第二种方法?
如何在第一种方法中访问身份验证令牌?
我正在尝试获取SHA1指纹,以便获得Google API密钥.我在以下目录中:
/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin
然后我从谷歌网站执行命令:
keytool -list -v -keystore mystore.keystore
但它给出了这个错误:
keytool error: java.lang.Exception: Keystore file does not exist: mystore.keystore
java.lang.Exception: Keystore file does not exist: mystore.keystore
at sun.security.tools.keytool.Main.doCommands(Main.java:742)
at sun.security.tools.keytool.Main.run(Main.java:340)
at sun.security.tools.keytool.Main.main(Main.java:333)
Run Code Online (Sandbox Code Playgroud)
我按照教程,但我不能让它工作!有谁知道我做错了什么?
BTW:我正在使用带有Xamarin Studio 5.5.2的Macbook Pro.
我找到了几个解决这个问题的方法,比如这篇文章中的railstat:
我有一堆文章和评论,我想要一个由独特的IP过滤的计数器.完全像Stackoverflow为这篇文章做的.但是当谷歌分析已经为我做这个并且包括大量代码,跟踪独特的IP等时,我并不真正关心像railstat这样的解决方案.我现在的想法是使用Garb或其他一些分析插件可以提取页面统计数据,如果它们比12小时更新某些表格更早,但我还需要一个cache_column.
我假设您可以从Google Analytics中为特定页面提取统计信息,并且每12小时更新一次统计信息?
我想知道为什么这会是一个坏主意,或者有人有更好的解决方案?
谢谢
counter google-analytics ruby-on-rails google-api ruby-on-rails-3
通常,Google OAuth2.0机制运行良好.
但有时候(迄今为止只有两次超过6个月)我经历过一些奇怪的行为:
对Google API的请求返回Invalid Credentials(401)错误.刷新访问令牌(使用存储的刷新令牌)没有帮助.
以下是我在测试此问题时得到的一些结构化输出:
+ ------------------------------------------------------------------------- +
| 1.TRYING TO REFRESH THE TOKEN. |
| 2.DONE REFRESHING THE TOKEN. |
+ ------------------------------------------------------------------------- +
| access: **************************************************** |
| refresh: ********************************************* |
| expires: 3600 |
| created: 2013-07-23 13:12:36 |
+ ------------------------------------------------------------------------- +
我还尝试通过向https://www.googleapis.com/oauth2/v1/tokeninfo发送请求来验证"新鲜"访问令牌
+ ------------------------------------------------------------------------- +
| 1. TRYING TO CHECK THE TOKEN . |
| 2. DONE CHECKING THE TOKEN THE TOKEN. |
+ ------------------------------------------------------------------------- +
| issued_to: ************.apps.googleusercontent.com | … google-api ×10
android ×6
google-oauth ×2
counter ×1
firebase ×1
gmail ×1
google-plus ×1
java ×1
mono ×1
oauth ×1
oauth-2.0 ×1
sha1 ×1
xamarin ×1