9

まず、私の問題は、ネットワークの更新を投稿したり、共有を投稿したり、IDで招待したりできないことです。私は常に次の例外を受け取ります:

08-29 17:18:04.000: E/AndroidRuntime(4316): FATAL EXCEPTION: main
08-29 17:18:04.000: E/AndroidRuntime(4316): com.google.code.linkedinapi.client.LinkedInApiClientException: Access to posting network updates denied.
08-29 17:18:04.000: E/AndroidRuntime(4316):     at com.google.code.linkedinapi.client.impl.BaseLinkedInApiClient.createLinkedInApiClientException(BaseLinkedInApiClient.java:3906)
08-29 17:18:04.000: E/AndroidRuntime(4316):     at com.google.code.linkedinapi.client.impl.BaseLinkedInApiClient.callApiMethod(BaseLinkedInApiClient.java:3846)
08-29 17:18:04.000: E/AndroidRuntime(4316):     at com.google.code.linkedinapi.client.impl.BaseLinkedInApiClient.postNetworkUpdate(BaseLinkedInApiClient.java:1172)
08-29 17:18:04.000: E/AndroidRuntime(4316):     at pl.osadkowski.LITest.LITestActivity.onNewIntent(LITestActivity.java:61)
08-29 17:18:04.000: E/AndroidRuntime(4316):     at android.app.Instrumentation.callActivityOnNewIntent(Instrumentation.java:1123)
08-29 17:18:04.000: E/AndroidRuntime(4316):     at android.app.ActivityThread.deliverNewIntents(ActivityThread.java:2042)
08-29 17:18:04.000: E/AndroidRuntime(4316):     at android.app.ActivityThread.performNewIntents(ActivityThread.java:2055)
08-29 17:18:04.000: E/AndroidRuntime(4316):     at android.app.ActivityThread.handleNewIntent(ActivityThread.java:2064)
08-29 17:18:04.000: E/AndroidRuntime(4316):     at android.app.ActivityThread.access$1400(ActivityThread.java:123)
08-29 17:18:04.000: E/AndroidRuntime(4316):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1194)
08-29 17:18:04.000: E/AndroidRuntime(4316):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-29 17:18:04.000: E/AndroidRuntime(4316):     at android.os.Looper.loop(Looper.java:137)
08-29 17:18:04.000: E/AndroidRuntime(4316):     at android.app.ActivityThread.main(ActivityThread.java:4424)
08-29 17:18:04.000: E/AndroidRuntime(4316):     at java.lang.reflect.Method.invokeNative(Native Method)
08-29 17:18:04.000: E/AndroidRuntime(4316):     at java.lang.reflect.Method.invoke(Method.java:511)
08-29 17:18:04.000: E/AndroidRuntime(4316):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
08-29 17:18:04.000: E/AndroidRuntime(4316):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
08-29 17:18:04.000: E/AndroidRuntime(4316):     at dalvik.system.NativeStart.main(Native Method)

第二に、私は何を試しましたか?まあ、私はすべてを試したことがないと確信しています、さもなければそれはうまくいくでしょうが、私はすべての可能性を使い果たしたように感じます。私が役に立たなかったことのいくつか:

https://developer.linkedin.com/documents/authentication#granting

https://stackoverflow.com/a/10872824/1436210

http://code.google.com/p/linkedin-j/source/browse/trunk/linkedin-j/core/src/examples/java/com/google/code/linkedinapi/client/examples/PostNetworkUpdateExample.java? r = 197

http://code.google.com/p/linkedin-j/wiki/GettingStarted

http://code.google.com/p/linkedin-j/wiki/AndroidConfiguration

誰かが助けてくれることを本当に願っています!! 何でもやってみます!! どうもありがとう!

4

5 に答える 5

9

バージョン1.0.429のlinkedin-j-android.jarのスコープパラメーターを修正しました

スコープが修正されたパッチが適用されたlinkedin-j-android.jarをダウンロードするためのリンクは次のとおりです

http://db.tt/yQjhqeq3

使用法はこのようなもので、追加のパラメータです

private String CONSUMER_KEY="XX"; // your consumer key here
private String CONSUMER_SECRET="YY"; // your consumer secret here
private String scopeParams="rw_nus+r_basicprofile";

LinkedInOAuthService oAuthService=LinkedInOAuthServiceFactory
            .getInstance().createLinkedInOAuthService(
                    CONSUMER_KEY,CONSUMER_SECRET, scopeParams);

お役に立てれば..

于 2012-11-22T10:39:41.913 に答える
2

ソースコードを変更する必要はありません。リフレクションを介してURLを変更できます。

java.lang.reflect.Field field = LinkedInApiUrls.class.getField("LINKED_IN_OAUTH_REQUEST_TOKEN_URL");
field.setAccessible(true);
java.lang.reflect.Field modifiersField = java.lang.reflect.Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
field.set(null, LinkedInApiUrls.LINKED_IN_OAUTH_REQUEST_TOKEN_URL + "?scope=r_basicprofile+r_emailaddress");

とにかく、LinkedIn oAuth1 APIはメールの取得をサポートしていません。oAuth2APIを使用する必要があります(http://developer.linkedin.com/documents/authentication

于 2013-04-25T09:57:30.430 に答える
1

私も同じ問題を抱えています。ユーザーにネットワーク更新の許可を求めてrequestTokenいないようです。そのため、ネットワークアップデートを取得できません。

しかし、APIのスコープ部分の割り当てはどこにありlinkedin-jますか?LinkedInのAPIを調べたところscope=rw_nus+r_basicprofile、requestTokenでparamを使用する必要があることがわかりました。

于 2012-09-01T10:45:38.007 に答える
1

LinkedIn-j.jarの代わりにscribe.jarを使用して問題を修正しました。jar内のクラスを抽出し、org.scribe.builder.api.LinkedInApi.classを編集して、URL「https://api.linkedin.com/uas/oauth/requestToken」を「https://api」に変更する必要があります。 .linkedin.com / uas / oauth / requestToken?scope=rw_nus"。

これを実現するには、パッケージからクラスLinkedInApiを削除してから、scribe.jarファイルを再パッケージ化します。また、URLを変更して、プロジェクトの同じパッケージに同じ名前のファイルを作成します。ファイルの.javaバージョンは、「https://github.com/fernandezpablo85/scribe-java/blob/master/src/main/java/org/scribe/builder/api/LinkedInApi.java」の場所で入手できます。 。

これは、ユーザーに許可を要求するときにネットワーク更新を行うための許可を追加するためです。ネットワーク更新の入力を送信するためのxmlは、リンク「https://developer.linkedin.com/documents/share-api」にあります。

于 2012-09-12T09:20:36.410 に答える
1

@eddy、簡単な回避策は、linked-jのsrc jarをダウンロードし、LinkedInApiUrls.propertiesを見つけて、最後にプロパティを編集することです: "com.google.code.linkedinapi.client.oauth.requestToken" withhttps://api.linkedin.com/uas/oauth/requestToken?scope=rw_nus+r_basicprofile

次に、編集したsrcコードをライブラリとしてプロジェクトに追加します。

于 2012-09-24T13:21:38.467 に答える