Twitter4J sendDirectMessage返回页面不存在

时间:2018-11-02 13:41:21

标签: java api twitter twitter4j

我想开发一个可以发送直接消息的应用程序,看起来像这样:

public static void sendDirectMessage(Long recipientId, String message){
    System.out.print("[Bot] Sending message to @"+recipientId+"...  ");
    try {
        twitter.sendDirectMessage(recipientId, message);
        System.out.println("done");
    } catch (TwitterException e) {
        System.out.println("fail");
        e.printStackTrace();
        System.err.println("[Error] "+e.getErrorMessage());
    }
}

我通过以下方式致电此声明

private static String
        customer_key = "",
        Oth_key = "",
        access_token = "",
        access_key = "";

private static TwitterBot bot;

public static void main(String[] args) {
    try {
        bot = new TwitterBot(customer_key, Oth_key, access_token, access_key);
    } catch (TwitterException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        System.err.println("[Err] "+e.getMessage());
    }
    bot.sendDirectMessage(bot.getUserData("AbA2L1").getId(), "Message test:!");
}

返回错误:

404:The URI requested is invalid or the resource requested, such as a user, does not exists. Also returned when the requested format is not supported by the requested method.
message - Sorry, that page does not exist.
code - 34

注意:

函数search(),getHomeTimeline()和updateStatus()有效。

我已在Twitter应用程序权限上激活了读取,写入和直接消息。

对不起,我的英语不好。

3 个答案:

答案 0 :(得分:1)

您正在使用哪个版本的Twitter4J?新的Direct Message API仅使用了几周,因此您可能需要一个新版本。

答案 1 :(得分:1)

此版本适用,将其添加到$.when( for (var i in myIds) { testclass.callGraph(myIds[i]); . ).done(function(){ console.log("load finished"); } 文件中:

pom.xml

祝你好运。

答案 2 :(得分:0)

将Twitter4j-core-4.0.7版本用于Twitter的直接消息功能。 其他版本的Twitter4j库显示未找到用户的TwitterException或页面不存在。