如何在Android应用程序中使用Twitter4J

时间:2012-11-30 08:59:02

标签: android twitter4j

我在我的java应用程序中使用Twitter4j。工作正常,能够得到推文。我在我的Android应用程序中使用相同的格式和代码。我将auth密钥保存在包文件夹内的属性文件中,也保存在资产文件夹中。但我收到以下错误。

11-30 13:35:46.487: W/System.err(737): java.lang.IllegalStateException: Authentication credentials are missing. See http://twitter4j.org/configuration.html for the detail.
11-30 13:35:46.507: W/System.err(737):  at twitter4j.TwitterBaseImpl.ensureAuthorizationEnabled(TwitterBaseImpl.java:205)
11-30 13:35:46.527: W/System.err(737):  at twitter4j.TwitterImpl.getUserTimeline(TwitterImpl.java:219)
11-30 13:35:46.537: W/System.err(737):  at com.example.MyAndApp.FullScreen.GetTweets(FullScreen.java:359)
11-30 13:35:46.548: W/System.err(737):  at com.example.MyAndApp.FullScreen.access$2(FullScreen.java:352)
11-30 13:35:46.560: W/System.err(737):  at com.example.MyAndApp.FullScreen$DisplayImage.onPostExecute(FullScreen.java:346)
11-30 13:35:46.567: W/System.err(737):  at com.example.MyAndApp.FullScreen$DisplayImage.onPostExecute(FullScreen.java:1)
11-30 13:35:46.578: W/System.err(737):  at android.os.AsyncTask.finish(AsyncTask.java:417)
11-30 13:35:46.601: W/System.err(737):  at android.os.AsyncTask.access$300(AsyncTask.java:127)
11-30 13:35:46.607: W/System.err(737):  at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
11-30 13:35:46.619: W/System.err(737):  at android.os.Handler.dispatchMessage(Handler.java:99)
11-30 13:35:46.637: W/System.err(737):  at android.os.Looper.loop(Looper.java:123)
11-30 13:35:46.647: W/System.err(737):  at android.app.ActivityThread.main(ActivityThread.java:3647)
11-30 13:35:46.658: W/System.err(737):  at java.lang.reflect.Method.invokeNative(Native Method)
11-30 13:35:46.667: W/System.err(737):  at java.lang.reflect.Method.invoke(Method.java:507)
11-30 13:35:46.677: W/System.err(737):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-30 13:35:46.697: W/System.err(737):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)  

以下是我在后执行方法中的aysnctask中使用的代码。

Twitter twitter = new TwitterFactory().getInstance();
        List<Status> tweets;
        Paging paging = new Paging();
        paging.setCount(1);
        tweets = twitter.getUserTimeline(paging);

        for (Status tweet : tweets) 
        {
            TweetMsg = tweet.getText();
        }  

我是否需要在Manifest文件中添加任何内容?

1 个答案:

答案 0 :(得分:3)

上面的链接使用了REV 1 oauth,它不再有效。 我编写了一个小型Eclipse项目,用REV 1.1授权twitter:

TwitterTime.zip