код для получения доступа к мышке с использованием android - PullRequest
0 голосов
/ 23 июня 2011

это код, который я использовал, чтобы получить accessToken

final 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);' Пользователь может разрешить доступ к приложению. и перенаправить URL-адрес с помощью oauthToken и access_verifier, который я смог увидеть в веб-обзоре с помощью этого сообщения: у вас нет разрешения на открытие этого URL-адреса с помощью OauthTOken и access_verifier.

Теперь вопрос в том, как получить access_verifier, используя мой код, чтобы сделать вызов для получения accessToken.

* это фильтр намерений *

1 Ответ

0 голосов
/ 06 марта 2012

Вы используете веб-просмотр в макете. Вы не можете получить доступ с этого пути. Вы должны вызвать браузер, который получает 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>
...