java - Twitter API 识别启用了直接消息传递的用户

标签 java twitter twitter4j

我正在尝试使用 twitter4j(Java 中)来获取关注某个恰好启用了直接消息传递的特定用户的用户列表。像这样的事情...

IDs followerIDs = twitter.getFollowersIDs(someTwitterScreenName, -1); 
long[] ids = followerIDs.getIDs(); 
for (long id : ids) {

    twitter4j.User user = twitter.showUser(id); 

    String userScreenName = user.getScreenName();
    String realName = user.getName();

    //I'm hoping for something like...
    ///Boolean directMessagingEnabled = user.messagingEnabled();              
}

唯一的问题是我找不到任何与 twitter4j.User 对象关联的听起来合适的属性(并且在 API 文档中也找不到任何对其的引用)。有谁知道是否有某种方法可以以编程方式查找这些类型的用户?或者说推特故意排除了它?感谢您的任何想法。

------编辑-----

Yuri 的文档链接让我看到了一位 Twitter 员工的回复:“无法通过公共(public) API 来确定用户是否接受所有人的私信。如果您是值得信赖的合作伙伴,请通过您的直接 Twitter 联系人联系以获取更多信息。”细节。” (https://twittercommunity.com/t/how-can-i-tell-which-users-the-current-user-can-send-messages-to/36127/4)

还注意到,可以使用“AccountSettings.getAccountSettings().allow_dms_from”获取已通过身份验证的用户的 DM 状态

最佳答案

这里讨论这个问题

https://dev.twitter.com/rest/reference/post/direct_messages/new

显然有一个您可以申请的访问白名单。

不过,您似乎已经拥有了所需的一切。关注您帐户的用户通常已经可以收到您发来的私信。这不包括用户首先向您发送私信或接受任何人发来的私信的情况。

但尝试发送并检查失败可能是最简单的方法。

关于java - Twitter API 识别启用了直接消息传递的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38015723/

相关文章:

java - 主机未解析 : api. twitter.com:80

java - Spring DI,工厂服务

java - 使用 Java 8 中的 G1 垃圾收集器进行不必要的 Full GC?

java - 无法使用 gradle-docker-plugin 将 jar 添加到新的 Docker 镜像

ios - 如何在 TWTweetComposeViewController 中设置文本光标的位置?

java - 是否可以使用 Twitter4j 库从特定用户获取 Twitter 的直接消息?

java - 为什么我在下面的代码 "The method getHeader(String) is undefined for the type HttpRequest"中收到此错误?

twitter - 如何获取推文的ID

html - 如何使用我自己的图标获得社交书签?

java - 如何使用 Twitter4J 流 API 避免 OutOfMemory 错误?