Android如何使用Twitter4j lib发送DirectMessage?

时间:2014-11-13 16:50:35

标签: android android-fragments twitter twitter4j android-twitter

我正在使用Twitter4j lib。我无法直接向我的粉丝发送消息。

new Thread(new Runnable() {

@Override
        public void run() {
            // TODO Auto-generated method stub
            DirectMessage message = null;
            try {

                message = twitter.sendDirectMessage(friendId, messsage);
                Log.d(" *** Twiiter Sent message **** ", "Sent Message is : "
                        + message.getText() + " \t Sender name: "
                        + message.getRecipientScreenName());
            } catch (TwitterException e) {
                e.printStackTrace();
            }

        }
    }).start();

我得到以下异常:

404:请求的URI无效或请求的资源(例如用户)不存在。当请求的方法不支持请求的格式时,也会返回。 消息 - 抱歉,该页面不存在 代码 - 34

相关讨论可在互联网上找到:

11-13 16:46:55.481:W / System.err(1990):http://www.google.co.jp/search?q=9bf58966或 11-13 16:46:55.481:W / System.err(1990):http://www.google.co.jp/search?q=17d1fbfd 11-13 16:46:55.481:W / System.err(1990):TwitterException {exceptionCode = [9bf58966-17d1fbfd],statusCode = 404,message =抱歉,该页面不存在,代码= 34,retryAfter = -1 ,rateLimitStatus = null,version = 4.0.1} 11-13 16:46:55.481:W / System.err(1990):在twitter4j.HttpClientImpl.handleRequest(HttpClientImpl.java:164) 11-13 16:46:55.481:W / System.err(1990):在twitter4j.HttpClientBase.request(HttpClientBase.java:53) 11-13 16:46:55.481:W / System.err(1990):在twitter4j.HttpClientBase.post(HttpClientBase.java:82) 11-13 16:46:55.481:W / System.err(1990):在twitter4j.TwitterImpl.post(TwitterImpl.java:2004) 11-13 16:46:55.481:W / System.err(1990):在twitter4j.TwitterImpl.sendDirectMessage(TwitterImpl.java:368) 11-13 16:46:55.481:W / System.err(1990):at com.dman.tweetfragment.Fragments.MainFragment $ 6.run(MainFragment.java:993) 11-13 16:46:55.481:W / System.err(1990):at java.lang.Thread.run(Thread.java:856) 11-13 16:46:55.481:W / dalvikvm(1990):threadid = 24:线程退出未捕获的异常(组= 0xa6296288)

请在此提供您宝贵的建议。 谢谢。

2 个答案:

答案 0 :(得分:1)

谢谢大家。我找到了答案。 我们必须传递 twitter用户screenName而不是screenId 。 screenId不适合我。我尝试使用screenName。它工作正常。

 message = twitter.sendDirectMessage(friendscreenName, messsage);

答案 1 :(得分:-1)

检查friendId。它必须是Long。如果String,则必须使用用户screenName