3

我想使用 Linq2Twitter 从用 ServiceStack 编写的 REST API 中进行 Twitter API 调用。

我有以下信息:

  • 消费者密钥
  • 消费者秘密
  • 从用户在网站上对我们的应用程序进行身份验证时缓存的 OAuth 令牌
  • 从用户在网站上对我们的应用程序进行身份验证时缓存的 OAuth TokenSecret

如何使用此信息创建 TwitterContext 以便进行 API 调用?我正在查看文档,并且看到了 WebForm、MVC、桌面示例,但没有针对我当前的用例。我不认为我可以使用 WebForm/MVC 的,因为如果令牌/令牌密码不正确,它们会尝试将用户重定向到授权页面。我查看了桌面示例,它使用了 pin 授权,我认为我也不能使用。

我知道如果用户在我缓存了这些值之后决定撤销访问权限,则令牌/令牌秘密可能会很糟糕,所以我需要一种方法来验证,然后如果失败则什么也不做。

4

1 回答 1

3

这个问题并不完全相同,但授权人的概念可能对您来说很有趣:

如何在 Web 服务中使用 Linq to Twitter?

本质上,您希望实例化一个授权方,将值分配给 Credentials 属性,如下所示:

    var auth = new SingleUserAuthorizer
    {
        Credentials = new SingleUserInMemoryCredentials
        {
            ConsumerKey = ConfigurationManager.AppSettings["twitterConsumerKey"],
            ConsumerSecret = ConfigurationManager.AppSettings["twitterConsumerSecret"],
            TwitterAccessToken = ConfigurationManager.AppSettings["twitterAccessToken"],
            TwitterAccessTokenSecret = ConfigurationManager.AppSettings["twitterAccessTokenSecret"]
        }
    };

然后,实例化您的 TwitterContext,如下所示:

    var ctx = new TwitterContext(auth);

在这种情况下,特定的授权者是 SingleUserAuthorizer,但您可以使用与获取原始凭据相同的授权者。只需提供所有 4 个凭据,LINQ to Twitter 将绕过用户重定向以在 Twitter 上进行授权。

于 2013-08-09T22:40:09.193 回答