如何检查用户是否关注我没有使用TweetSharp.TwitterService.ListFollowers()

时间:2012-01-20 08:51:17

标签: twitter tweetsharp

TweetSharp中是否有某些功能可以与我下面的'IsFollowingMe'类似的方式使用?

我想在尝试发送私信之前检查用户是否关注我。

TweetSharp.TwitterService service;
string screenName = "@some_one";
string someMessage = "Some Message";

if (service.IsFollowingMe(screenName))
{
       service.SendDirectMessage(screenName, someMessage);
   else
       NotifyThatSendingNotPossible();
}

这种方法的第一个选择是使用:

TweetSharp.TwitterService service;
TwitterCursorList<TwitterUser> followers = service.ListFollowers();

然后遍历结果以查明用户是否关注了我的帐户。但是,当有很多粉丝时,这最终会无效。

另一个选项是执行service.SendDirectMessage,然后检查结果是否为null。我成功地测试了这种方法 - 但是我的应用程序逻辑更喜欢提前检查是否可以发送,并且基于此信息应该执行不同的操作。

2 个答案:

答案 0 :(得分:1)

答案如下:

TweetSharp.TwitterService service;
string fromUser = "@mr_sender";
string toUser = "@some_one";
string someMessage = "Some Message";

TweetSharp.TwitterFriendship friendship = 
    service.GetFriendshipInfo(fromUser, toUser);

if (friendship.Relationship.Source.CanDirectMessage.HasValue &&
   friendship.Relationship.Source.CanDirectMessage.Value)
{
    service.SendDirectMessage(screenName, someMessage);
}
else
{
    NotifyThatSendingNotPossible();
}

答案 1 :(得分:0)

我可以使用以下方法解决此问题。

var twitterFriendship = service.GetFriendshipInfo(new GetFriendshipInfoOptions() { SourceScreenName = "source_name", TargetScreenName = "target_name"});

之后,您可以按如下所示进行检查

if(twitterFriendship.Relationship.Source.Following && twitterFriendship.Relationship.Target.FollowedBy)
    {
     service.SendDirectMessage(new SendDirectMessageOptions() { ScreenName="target_name",Text="message"})
    }