Как проверить, что пользователь следит за мной, не используя TweetSharp.TwitterService.ListFollowers () - PullRequest
1 голос
/ 20 января 2012

Есть ли какая-либо функция в 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, а затем проверить, является ли результат нулевым или нет. Я успешно проверил такой подход - однако логика моего приложения предпочитает заранее проверять, возможна ли отправка, и на основании этой информации должны выполнять различные действия.

Ответы [ 2 ]

1 голос
/ 11 марта 2012

Ответ таков:

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();
}
0 голосов
/ 28 июля 2018

Я мог бы решить эту проблему, используя следующий способ.

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