LinkedIn authentication problem in eclipse

I am trying to integrate LinkedIn with Android. Using tutorials, I applied the following code ...

private void setWebView()
    {
        LinkedinDialog.oAuthService = LinkedInOAuthServiceFactory.getInstance().createLinkedInOAuthService(LINKEDIN_CONSUMER_KEY, LINKEDIN_CONSUMER_SECRET);
        LinkedinDialog.factory = LinkedInApiClientFactory.newInstance(LINKEDIN_CONSUMER_KEY, LINKEDIN_CONSUMER_SECRET);

        LinkedinDialog.liToken = LinkedinDialog.oAuthService.getOAuthRequestToken(OAUTH_CALLBACK_URL);

        WebView mWebView = (WebView) findViewById(R.id.webkitWebView1);
        mWebView.getSettings().setJavaScriptEnabled(true);

        Log.i("LinkedinSample", LinkedinDialog.liToken.getAuthorizationUrl());
        mWebView.loadUrl(LinkedinDialog.liToken.getAuthorizationUrl());
        mWebView.setWebViewClient(new HelloWebViewClient());

        mWebView.setPictureListener(new PictureListener()
        {
            public void onNewPicture(WebView view, Picture picture)
            {
                if(progressDialog != null && progressDialog.isShowing())
                {
                    progressDialog.dismiss(); 
                }

            }
        });

    }

I get the following error when

LinkedinDialog.liToken = LinkedinDialog.oAuthService.getOAuthRequestToken(OAUTH_CALLBACK_URL);




07-22 17:32:08.026: E/AndroidRuntime(26733): FATAL EXCEPTION: main
07-22 17:32:08.026: E/AndroidRuntime(26733): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.devicebee.app.transportfinder/com.devicebee.app.transportfinder.LinkedInActivity}: com.google.code.linkedinapi.client.oauth.LinkedInOAuthServiceException: oauth.signpost.exception.OAuthCommunicationException: Communication with the service provider failed: https://api.linkedin.com/uas/oauth/requestToken

I searched the Internet, and according to some reports, this is because I'm under some proxy. But I'm sure I'm not under any trustee. Please if someone tells me what to do. Regards

+5
source share
2 answers

ok this is what i used and now it works fine

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.widget.Toast;

import com.google.code.linkedinapi.client.LinkedInApiClient;
import com.google.code.linkedinapi.client.LinkedInApiClientFactory;
import com.google.code.linkedinapi.client.oauth.LinkedInAccessToken;
import com.google.code.linkedinapi.client.oauth.LinkedInOAuthService;
import com.google.code.linkedinapi.client.oauth.LinkedInOAuthServiceFactory;
import com.google.code.linkedinapi.client.oauth.LinkedInRequestToken;

public class LITestActivity extends Activity {


    public static final String CONSUMER_KEY = "xx";
    public static final String CONSUMER_SECRET = "xx";
    private final static String APP_PNAME = "xx";


    public static final String APP_NAME = "xx;
    public static final String OAUTH_CALLBACK_SCHEME = "xx";
    public static final String OAUTH_CALLBACK_HOST = "xxx";
    public static final String OAUTH_CALLBACK_URL = OAUTH_CALLBACK_SCHEME
            + "://" + OAUTH_CALLBACK_HOST;

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

//  TextView tv = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    //  setContentView(R.layout.main);
    //  tv = (TextView) findViewById(R.id.tv);
        try
        {
        liToken = oAuthService.getOAuthRequestToken(OAUTH_CALLBACK_URL);
        Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(liToken
                .getAuthorizationUrl()));
        startActivity(i);
        }catch (Exception e) {
            Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_SHORT).show();

        }
    }

    @Override
    protected void onNewIntent(Intent intent) {
        String verifier = intent.getData().getQueryParameter("oauth_verifier");
        try{
        LinkedInAccessToken accessToken = oAuthService.getOAuthAccessToken(
                liToken, verifier);
        client = factory.createLinkedInApiClient(accessToken);
        String tweet = "Download Android App " + "market://details?id=" + APP_PNAME;
        client.postNetworkUpdate(tweet);
        //Person p = client.getProfileForCurrentUser();
        //tv.setText(p.getLastName() + ", " + p.getFirstName());
    //      p.setCurrentStatus("tweet");

        }catch (Exception e) {
            Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_SHORT).show();
        }
        finish();

    }
}

Libraries

linkedin-j-android.jar
signpost-jetty6-1.2.1.1.jar
signpost-core-1.2.1.1.jar
0
source

Most likely you are trying to run this in your user interface thread where the network is not allowed. You will need to make oauth calls in AsyncTask.

Android 3.0. , , , , .

- EDIT-- , , API 10 , .

+1

All Articles