Bonjour à tous!
J'essaye d'utiliser l'api jtwitter pour pouvoir faire des updates de status sur Twitter. Twitter requiert désormais une authentication en oAuth pour authoriser l'application twitter et donner le privilège de poster, j'utilise pour cela la librairie signpost.
Voici le code que j'utilise pour demander la permission :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 oauthClient = new OAuthSignpostClient(CONS_KEY, CONS_SEC, CALLBACK); URI url = oauthClient.authorizeUrl(); Uri uri = Uri.parse(url.toString()); Intent w = new Intent(Intent.ACTION_VIEW); w.setData(uri); startActivity(w);
Si ce bout de code marche très bien sur l'émulateur et en wifi, il est impossible de l'utiliser tel quel des que j'essaye de me connecter en 3G...
Si j'essaye avec Orange, le client web est automatiquement redirigé vers mobile.twitter.com, et je n'accède pas à la page d'authorisation de l'URL.
Si j'essaye avec Bouygues, j'ai des exceptions et le log suivant (comme si il n'y avait aucune connexion réseau):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): FATAL EXCEPTION: main 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): java.lang.RuntimeException: Unable to start activity ComponentInfo{qzf.qfq/qzf.qfq.qzfqzfqz}: winterwell.jtwitter.TwitterException: oauth.signpost.exception.OAuthCommunicationException: Communication with the service provider failed: http://twitter.com/oauth/request_token 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2781) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2797) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at android.app.ActivityThread.access$2300(ActivityThread.java:135) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2132) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at android.os.Handler.dispatchMessage(Handler.java:99) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at android.os.Looper.loop(Looper.java:143) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at android.app.ActivityThread.main(ActivityThread.java:4914) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at java.lang.reflect.Method.invokeNative(Native Method) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at java.lang.reflect.Method.invoke(Method.java:521) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at dalvik.system.NativeStart.main(Native Method) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): Caused by: winterwell.jtwitter.TwitterException: oauth.signpost.exception.OAuthCommunicationException: Communication with the service provider failed: http://twitter.com/oauth/request_token 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at winterwell.jtwitter.OAuthSignpostClient.authorizeUrl(OAuthSignpostClient.java:291) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at qzf.qfq.qzfqzfqz.startJTwitter(qzfqzfqz.java:80) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at qzf.qfq.qzfqzfqz.onCreate(qzfqzfqz.java:50) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1065) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2745) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): ... 11 more 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): Caused by: oauth.signpost.exception.OAuthCommunicationException: Communication with the service provider failed: http://twitter.com/oauth/request_token 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:214) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at oauth.signpost.AbstractOAuthProvider.retrieveRequestToken(AbstractOAuthProvider.java:69) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at winterwell.jtwitter.OAuthSignpostClient.authorizeUrl(OAuthSignpostClient.java:287) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): ... 15 more 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): Caused by: java.io.FileNotFoundException: http://twitter.com/oauth/request_token 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:1162) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at oauth.signpost.basic.HttpURLConnectionResponseAdapter.getContent(HttpURLConnectionResponseAdapter.java:18) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at oauth.signpost.AbstractOAuthProvider.handleUnexpectedResponse(AbstractOAuthProvider.java:228) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): at oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:189) 06-03 11:27:42.821: ERROR/AndroidRuntime(27968): ... 17 more
Quelqu'un a-t-il déjà rencontré ce genre de problèmes? J'avais eu la meme chose (enfin, dans l'idée) ici, mais je ne suis pas sûr que ce soit vraiment la même chose (si ce n'est un bridage de la 3G). Quelqu'un a-t-il déjà travaillé avec jTwitter (ou finalement une autre librairie twitter) et bypassé le problème?
Merci d'avances pour vos réponses et vos idées!
Partager