gpt4 book ai didi

android - 无法在 Android 中检索雅虎集成的请求 token ?

转载 作者:搜寻专家 更新时间:2023-11-01 08:13:41 25 4
gpt4 key购买 nike

我正在尝试将 yahoo 集成到我的应用程序中。我在努力,

private static final String YAHOO_CALLBACK_URI = "MyApp://oauth";
public static final String YAHOO_REQUEST_TOKEN_URL = "http://api.login.yahoo.com/oauth/request_token";//api.login.yahoo.com
public static final String YAHOO_ACCESS_TOKEN_URL = "http://api.login.yahoo.com/oauth/access_token";
public static final String YAHOO_AUTHORIZE_URL = "http://api.login.yahoo.com/authorize";


CommonsHttpOAuthConsumer consumer = new CommonsHttpOAuthConsumer(YAHOO_CONSUMER_KEY, YAHOO_CONSUMER_SERECT_KEY);
OAuthProvider provider = new CommonsHttpOAuthProvider(YAHOO_REQUEST_TOKEN_URL, YAHOO_ACCESS_TOKEN_URL, YAHOO_AUTHORIZE_URL);
provider.setOAuth10a(true);
try {
String authUrl = provider.retrieveRequestToken(consumer, YAHOO_CALLBACK_URI);// Can I pass Null for callback url.
System.out.println("AuthURL = " + authUrl);
} catch (OAuthMessageSignerException e) {
e.printStackTrace();
} catch (OAuthNotAuthorizedException e) {
e.printStackTrace();
} catch (OAuthExpectationFailedException e) {
e.printStackTrace();
} catch (OAuthCommunicationException e) {
e.printStackTrace();
}

得到

oauth.signpost.exception.OAuthCommunicationException: Communication with the service provider failed: Service provider responded in error: 404(未找到)

为什么我们无法检索请求 token 。

最佳答案

  1. 确保您的应用程序在 Yahoo 上注册为基于网络。当您注册为基于 Web 的应用程序时,请提供有效的应用程序 URL 和您选择的应用程序域(两者应该是相同的域),但尚未被其他任何人使用。例如,我有我拥有的网站的网址。这也将用作您的消费者中的回调 url。
  2. 不要调用“MyApp://oauth”,而是提供一个有效的 http 回调 url(与您用于注册应用程序的相同)。有了这么多,您上面的代码应该可以工作。
  3. 打开一个新的 Webview 并调用 authUrl。一旦您的应用程序获得授权,通过覆盖“onPageStarted”方法拦截对您的应用程序 url 的调用。在那里,通过启动指向“MyApp://oauth”的新 Intent 来回调您的应用。

如果上述任何步骤让您感到困惑,请告诉我 - 我非常乐意提供帮助。

关于android - 无法在 Android 中检索雅虎集成的请求 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6960632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com