我试图使用LinqToTwitter库和下面的c#代码获取推文流,但是我收到了这个错误:
错误401未经授权
public static SingleUserAuthorizer auth;
static void Main(string[] args)
{
Task task = new Task(getStreamOfTweets);
task.Start();
task.Wait();
Console.ReadLine();
}
static async void getStreamOfTweets()
{
auth = new SingleUserAuthorizer
{
CredentialStore = new SingleUserInMemoryCredentialStore
{
ConsumerKey = CUSTOMER_KEY,
ConsumerSecret = CUSTOMER_SECRET,
AccessToken = ACCESS_TOKEN,
AccessTokenSecret = ACCESS_TOKEN_SECRET
}
};
var context = new TwitterContext(auth);
int count = 0;
await (from strm in context.Streaming
where strm.Type == StreamingType.Filter
&& strm.Track == "federer"
select strm)
.StartAsync(async strm =>
{
string message =
string.IsNullOrEmpty(strm.Content) ?
"Keep-Alive" : strm.Content;
Console.WriteLine(
(count + 1).ToString() +
". " + DateTime.Now +
": " + message + "\n");
if (count++ == 5)
strm.CloseStream();
});
}
备注:
twitter app中的权限是"读取,写入和访问直接消息"
我可以通过REST API正确发送推文
答案 0 :(得分:0)
请查看LINQ to Twitter FAQ,其中有关于解决401错误的广泛部分。也就是说,如果它正在为REST API而不是Streaming工作,那么可能会缩小要尝试的选项范围。以下是一些值得尝试的事情:
答案 1 :(得分:0)
发生此问题是因为窗口的时间错误。
答案 2 :(得分:0)
如果你复制了&从Linq" Twitter示例代码中粘贴,确保您已正确设置所有密钥:
.sort_values
然后不要使用"仅限申请" auth,使用" user auth"而是使用所有上述键的流式传输。
答案 3 :(得分:0)
问题是因为PC中的时间是错误的