Android上的路标OAuth:如何在两次成功运行之间重新创建消费者?

Android上的路标OAuth:如何在两次成功运行之间重新创建消费者?,第1张

概述我成功地使用Signpost通过OAuth授权对Google帐户中受保护资源的调用. 然而,用户必须每次都通过Google并授予访问权限,这似乎有点奇怪.有没有办法序列化消费者并重新创建它,以便不需要重新授权?我已尝试在共享首选项中保留令牌,密钥和验证程序并在消费者中设置它们但我收到OAuthExpectationFailedException. 有任何想法吗? 收到访问令牌后,您可以将其存储在您 我成功地使用Signpost通过OAuth授权对Google帐户中受保护资源的调用.

然而,用户必须每次都通过Google并授予访问权限,这似乎有点奇怪.有没有办法序列化消费者并重新创建它,以便不需要重新授权?我已尝试在共享首选项中保留令牌,密钥和验证程序并在消费者中设置它们但我收到OAuthExpectationFailedException.

有任何想法吗?

解决方法 收到访问令牌后,您可以将其存储在您的应用首选项中,如下所示:

provIDer.retrIEveAccesstoken(consumer,oauth_verifIEr);final Editor edit = prefs.edit();edit.putString(OAuth.OAUTH_TOKEN,consumer.getToken());edit.putString(OAuth.OAUTH_TOKEN_SECRET,consumer.getTokenSecret());edit.commit();

之后,您可以像这样重新创建消费者:

private OAuthConsumer getConsumer(SharedPreferences prefs) {    String token = prefs.getString(OAuth.OAUTH_TOKEN,"");    String secret = prefs.getString(OAuth.OAUTH_TOKEN_SECRET,"");    OAuthConsumer consumer = new CommonshttpOAuthConsumer(Constants.CONSUMER_KEY,Constants.CONSUMER_SECRET);    consumer.setTokenWithSecret(token,secret);    return consumer;}

获得消费者后,您可以进行API调用,消费者将对其进行签名.

DefaulthttpClIEnt httpclIEnt = new DefaulthttpClIEnt();httpGet request = new httpGet(url);consumer.sign(request);httpResponse response = httpclIEnt.execute(request);

根据signpost docs:

路标对象非常轻量级,因此建议您为应用程序中必须发送已签名http请求的每个线程创建OAuthConsumer和OAuthProvIDer.这两个对象也是可序列化的,因此您可以在以后保留并恢复它们.

总结

以上是内存溢出为你收集整理的Android上的路标OAuth:如何在两次成功运行之间重新创建消费者?全部内容,希望文章能够帮你解决Android上的路标OAuth:如何在两次成功运行之间重新创建消费者?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1121724.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存