这是我用来获取accessToken
的代码最终LinkedInOAuthService oAuthService = LinkedInOAuthServiceFactory.getInstance()。createLinkedInOAuthService(Constants.CONSUMER_KEY,Constants.CONSUMER_SECRET);
final LinkedInApiClientFactory factory = LinkedInApiClientFactory.newInstance(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);
LinkedInRequestToken liToken;
LinkedInApiClient client;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.notepad_list);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.setVerticalScrollBarEnabled(false);
mWebView.setHorizontalScrollBarEnabled(false);
mWebView.getSettings().setJavaScriptEnabled(true);
try
{
System.out.println("Fetching request token from LinkedIn...");
liToken = oAuthService.getOAuthRequestToken(Constants.OAUTH_CALLBACK_URL);
String authUrl = liToken.getAuthorizationUrl();
System.out.println("authUrl=================================="+authUrl);
mWebView.loadUrl(authUrl);
mWebView.addJavascriptInterface(new MyInterface()
, "htmlcontent");
当'mWebView.loadUrl(authUrl);'执行用户可以允许应用程序访问。并使用oauthToken和access_verifier重定向网址,我可以在网页视图中看到此消息:您无权使用OauthTOken和access_verifier打开此网址。
现在的问题是如何使用我的代码获取access_verifier,以便进行调用以获取accessToken。
* 这是intent-filter *
答案 0 :(得分:0)
您正在布局中使用webview。你不能通过这种方式获得accessToken。您必须调用检索CALLBACK_URL的浏览器。使用以下代码来解决您的问题。
public void onCreate(Bundle savedInstanceState) {
oAuthService = LinkedInOAuthServiceFactory
.getInstance()
.createLinkedInOAuthService(
getResources().getString(R.string.consumer_key),
getResources().getString(
R.string.consumer_secret));
factory = LinkedInApiClientFactory.newInstance(getResources()
.getString(R.string.consumer_key), getResources()
.getString(R.string.consumer_secret));
liToken = oAuthService
.getOAuthRequestToken(WelcomeActivity.OAUTH_CALLBACK_URL);
i = new Intent(Intent.ACTION_VIEW, Uri
.parse(liToken.getAuthorizationUrl()));
startActivity(i);
}
protected void onNewIntent(Intent intent) {
String verifier = intent.getData().getQueryParameter("oauth_verifier");
accessToken = oAuthService.getOAuthAccessToken(liToken, verifier);
}
将此代码放入.manifest
中的活动代码中<intent-filter >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="callback"
android:scheme="linkedin" />
</intent-filter>