我想使用 Linq2Twitter 从用 ServiceStack 编写的 REST API 中进行 Twitter API 调用。
我有以下信息:
- 消费者 key
- 消费者 secret
- 当用户在网站上验证我们的应用程序时缓存的 OAuth token
- 从用户在网站上验证我们的应用程序时缓存的 OAuth TokenSecret
如何使用此信息创建 TwitterContext 以便进行 API 调用?我正在查看文档,我看到了 WebForm、MVC、桌面示例,但没有一个适用于我当前的用例。我认为我不能使用 WebForm/MVC,因为如果 token / token 密码错误,它们会尝试将用户重定向到授权页面。我查看了桌面示例,它使用了 pin 授权,我认为我也不能使用它。
我知道如果用户在我缓存这些值后决定撤销访问权限,则 token / token secret 可能是错误的,因此我需要一种验证方法,如果失败则不执行任何操作。
最佳答案
这个问题并不完全相同,但您可能对授权人的概念感兴趣:
How to use Linq to Twitter inside a web service?
本质上,您想要实例化一个授权方,为 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 上进行授权。
关于c# - 在 ServiceStack api 中使用 Linq2Twitter 和缓存的 OAuth token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18156357/