2012-07-25 12 views
6

私はAndroidアプリでLinkedIn OAuthを使用しています。私はLinkedInアプリケーション、コンシューマーキーとシークレットをすでに持っています。その結果、私はうまくいってリクエストすることができます。Android:LinkedIn OAuthコールバックが動作しない

コールバックまでは問題ありません。 Webページがコールバックしない、つまり、onNewIntentまたはonResumeメソッドが呼び出されません。 Webページには、パラメーターを指定したコールバックURLのみが表示されます。

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(); 
} 

活動はすでにManifestsingleInstance次のように定義されます

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

はここに私のすべてのコードです:私は次のように見えるわけ。

何が間違っているか間違いましたか?

答えて

2

私は長い研究の後に自分自身で答えを見つけました。

私のベースクラスを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"); 

+0

こんにちはマーティン、私は多くの検索とデモテストをしていましたが、すべての例で失敗しました。あなたのポストでは、最初に知りたいのですが、あなたのコードはアンドロイド4.0以上で動作しますか? –

+0

あなたのコードが上記のAndroid 4.0で動作するかどうかにかかわらず、アップデートを投稿できますか?それに加えて、あなたのAndroidManifest.xmlを共有してください。詳細を入力して、LinkedIn WebViewでEnterキーを押した後、ERR_UNKNOWN_URL_SCEMEを取得しています。 –

関連する問題