Android: How to share with Twitter (如何分享信息到Twitter)

来源:互联网 发布:2014网络伤感流行歌曲 编辑:程序博客网 时间:2024/05/16 03:07

逐步补全!

决定使用twitter4j来完成。


完成过程:

step1: 从 http://abhinavasblog.blogspot.com/2011/06/for-all-my-code-thirsty-friends-twitter.html?spref=fb

check out 出代码:


设置: 

/** Called when the activity is first created. */

privatestaticfinal StringCONSUMER_KEY ="XXXXXXXXXXXXXXX";// 

privatestaticfinal StringCONSUMER_SECRET ="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";


修改manifest.xml

<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">

<activityandroid:name=".TwitterForUActivity"android:label="@string/app_name">

<intent-filter>

<actionandroid:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter>

    <intent-filter>

            <actionandroid:name="android.intent.action.VIEW"/>

            <categoryandroid:name="android.intent.category.DEFAULT"/>

            <categoryandroid:name="android.intent.category.BROWSABLE"/>

            <dataandroid:scheme="twitterapp"android:host="connect"/>

        </intent-filter>

        

</activity>


</application>

<uses-permissionandroid:name="android.permission.INTERNET"/>


// 红色部分为添加




在真机上测试运行,结果显示:

03-05 15:04:20.962: W/System.err(1508): oauth.signpost.exception.OAuthCommunicationException: Communication with the service provider failed: https://api.twitter.com/oauth/request_token

03-05 15:04:20.962: W/System.err(1508): at oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:214)

03-05 15:04:20.962: W/System.err(1508): at oauth.signpost.AbstractOAuthProvider.retrieveRequestToken(AbstractOAuthProvider.java:69)

03-05 15:04:20.972: W/System.err(1508): at com.twitter.android.TwitterApp$2.run(TwitterApp.java:130)

03-05 15:04:20.972: W/System.err(1508): Caused by: java.io.FileNotFoundException: https://api.twitter.com/oauth/request_token

03-05 15:04:20.972: W/System.err(1508): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:521)

03-05 15:04:20.972: W/System.err(1508): at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:258)

03-05 15:04:20.972: W/System.err(1508): at oauth.signpost.basic.HttpURLConnectionResponseAdapter.getContent(HttpURLConnectionResponseAdapter.java:18)

03-05 15:04:20.972: W/System.err(1508): at oauth.signpost.AbstractOAuthProvider.handleUnexpectedResponse(AbstractOAuthProvider.java:228)

03-05 15:04:20.972: W/System.err(1508): at oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:189)

03-05 15:04:20.972: W/System.err(1508): ... 2 more

03-05 15:04:20.992: E/TWITTER(1508): Error getting request token


然后查阅资料:

http://java.dzone.com/articles/learning-android


还是解决不了,不知道应该如何是好。


换一种思路:


http://android10.org/index.php/articleslibraries/291-twitter-integration-in-your-android-application

按照这个上面的指导一步一步来做,试试运气吧! 结果还是不行。


后来才知道是网络出了问题,公司的wifi有问题!上的异常,也是由于网络问题所引起的,在开发 ”分享信息到twitter上“,这个功能时,一定要保证你的手机能够连接VPN上得twitter,facebook这些外网。


还是使用原来的步骤来做,就成功了。


特别注意: 在twitter上面创建自己的应用 时,一定要记得设置 CALLBACK_URL 这个项目,不能为空。对于ANDROID 来说这个设置一定不能为空。你可以随便设置一个网址,反正在程序里面我们已经做了CALLBACK处理。所以设置什么内容是无关的。或者出现下面的异常,也是因为网络原因:

03-07 11:24:58.247: W/System.err(2261): oauth.signpost.exception.OAuthCommunicationException: Communication with the service provider failed: api.twitter.com
03-07 11:24:58.247: W/System.err(2261): at oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:214)
03-07 11:24:58.247: W/System.err(2261): at oauth.signpost.AbstractOAuthProvider.retrieveRequestToken(AbstractOAuthProvider.java:69)
03-07 11:24:58.247: W/System.err(2261): at com.twitter.android.TwitterApp$2.run(TwitterApp.java:131)
03-07 11:24:58.257: W/System.err(2261): Caused by: java.net.UnknownHostException: api.twitter.com
03-07 11:24:58.257: W/System.err(2261): at java.net.InetAddress.lookupHostByName(InetAddress.java:497)
03-07 11:24:58.257: W/System.err(2261): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:294)
03-07 11:24:58.257: W/System.err(2261): at java.net.InetAddress.getAllByName(InetAddress.java:256)
03-07 11:24:58.257: W/System.err(2261): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:69)
03-07 11:24:58.267: W/System.err(2261): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:48)
03-07 11:24:58.267: W/System.err(2261): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection$Address.connect(HttpConnection.java:322)
03-07 11:24:58.267: W/System.err(2261): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:89)
03-07 11:24:58.267: W/System.err(2261): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHttpConnection(HttpURLConnectionImpl.java:285)
03-07 11:24:58.267: W/System.err(2261): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.makeConnection(HttpURLConnectionImpl.java:267)
03-07 11:24:58.277: W/System.err(2261): at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:406)
03-07 11:24:58.277: W/System.err(2261): at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl$HttpsEngine.makeConnection(HttpsURLConnectionImpl.java:387)
03-07 11:24:58.277: W/System.err(2261): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:205)
03-07 11:24:58.277: W/System.err(2261): at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:152)
03-07 11:24:58.277: W/System.err(2261): at oauth.signpost.basic.DefaultOAuthProvider.sendRequest(DefaultOAuthProvider.java:48)
03-07 11:24:58.277: W/System.err(2261): at oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:177)
03-07 11:24:58.277: W/System.err(2261): ... 2 more
03-07 11:24:58.297: E/TWITTER(2261): Error getting request token



参考资料:

http://twitter4j.org/en/index.html


http://stackoverflow.com/questions/4571352/is-there-any-twitter-api-sdk-for-android


http://stackoverflow.com/questions/5937600/how-to-check-callback-url-in-twitter-application

原创粉丝点击