twitter API识别启用了直接消息传递的用户

时间:2016-06-24 14:24:03

标签: 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文档中也找不到对它的任何引用)。有谁知道有没有办法以编程方式找到这些类型的用户?或者也许twitter故意排除它?谢谢你的任何想法。

------ ----- EDIT

来自Yuri的文档链接让我得到了来自Twitter员工的回复:“确定用户是否接受所有人的DM是不可通过公共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状态。

1 个答案:

答案 0 :(得分:1)

这在这里讨论

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

显然您可以申请访问白名单。

然而,似乎你大部分都拥有你需要的一切。关注您帐户的用户通常可以从您那里收到DM。这并不包括用户首先使用DM,或接受任何人的DM的情况。

但尝试发送和检查故障可能是最简单的。