gpt4 book ai didi

安卓:LinkedIn OAuth 回调不工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:17:58 25 4
gpt4 key购买 nike

我在我的 Android 应用程序中使用 LinkedIn OAuth。我已经有一个 LinkedIn 应用程序、消费者 key 和 secret ,因此我可以成功请求。

回调前一切正常。网页没有回调,我的意思是 onNewIntentonResume 方法没有调用。网页仅显示带参数的回调 url。我的意思是它看起来像:

callback_url://?oauth_token=324sdf&oath_verifier=as21dsf

这是我的全部代码:

try {
consumer = new CommonsHttpOAuthConsumer("ConsumerKey", "ConsumerSecret");
provider = new CommonsHttpOAuthProvider("https://api.linkedin.com/uas/oauth/requestToken", "https://api.linkedin.com/uas/oauth/accessToken", "https://api.linkedin.com/uas/oauth/authorize");
final String url = provider.retrieveRequestToken(consumer, Constants.OAUTH_CALLBACK_URL);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)).setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_FROM_BACKGROUND);
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}

Activity 已在 Manifest 中定义为 singleInstance

有什么问题或缺失?

最佳答案

经过长时间的研究,我自己找到了答案。

我已经将我的基类更改为 linkedin-j,可以查看 here .

然后如下设置这个常量:

    public static final String CONSUMER_KEY = "ConsumerKey";
public static final String CONSUMER_SECRET = "ConsumerSecret";
public static final String OAUTH_CALLBACK_SCHEME = "callback";
public static final String OAUTH_CALLBACK_URL = OAUTH_CALLBACK_SCHEME + ":///";

然后像这样初始化:

LinkedInOAuthService oAuthService = LinkedInOAuthServiceFactory.getInstance().createLinkedInOAuthService(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);
LinkedInApiClientFactory factory = LinkedInApiClientFactory.newInstance(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);
LinkedInRequestToken liToken;
LinkedInApiClient client;

liToken = oAuthService.getOAuthRequestToken(Constants.OAUTH_CALLBACK_URL);
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(liToken.getAuthorizationUrl()));
startActivity(i);

这个回调很好,我已经在 OnNewIntent 处理过:

String verifier = intent.getData().getQueryParameter("oauth_verifier");

LinkedInAccessToken accessToken = oAuthService.getOAuthAccessToken(liToken, verifier);
client = factory.createLinkedInApiClient(accessToken);
client.postNetworkUpdate("Test");

就这些。

关于安卓:LinkedIn OAuth 回调不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11650218/

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