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