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



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。我成功地测试了这种方法——然而,我的应用程序逻辑更喜欢提前检查是否可以发送,并且基于这些信息应该执行不同的操作。

答案如下:

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();
}

我可以用下面的方法解决这个问题。

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"})
    }

最新更新