我想使用GET状态/ home_timeline 获取推文列表。我的资源URL没有任何其他参数。当我发送请求时,我收到错误禁止。
下面代码的一部分 public async Task<BindableCollection<Tweet>> Execute()
{
string uri = "https://api.twitter.com/1.1/statuses/home_timeline.json";
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("Host", "api.twitter.com");
client.DefaultRequestHeaders.Add("Authorization", info.TokenType + ' ' + info.AccessToken);
HttpResponseMessage responce = new HttpResponseMessage();
while (true)
{
try
{
responce = await client.GetAsync(uri);
break;
}
catch { Debug.WriteLine("ERROR!"); }
}
info.TokenType
和info.AccessToken
包含“bearer”和我的访问令牌
按照
Appropriate photo
当我使用此参数(TokenType和AccessToken)发送请求(GET状态/ USER_timeline )时,我得到了正确答案。
有关于此的任何想法吗?
答案 0 :(得分:1)
HOME_timeline需要用户身份验证,而不是应用程序身份验证,可以与User_timeline一起使用。您是否使用应用程序凭据进行身份验证?
来自the docs:
&#34;使用仅应用程序身份验证时,您没有经过身份验证的用户的上下文,这意味着对需要用户上下文的端点(例如发布推文)的API请求将不起作用。但是,仍然可用的端点集可以具有更高的速率限制。&#34;
答案 1 :(得分:1)
正如Ian Nelson所说,您需要获得授权才能访问您的时间表。但您可以使用LinqToTwitter获取推文列表。
return
答案 2 :(得分:0)
您需要区分HomeTimeline和UserTimeline。
Tweetinvi可以非常直接地访问这两个:
var tweets = Timeline.GetHomeTimeline();
// OR
var tweets = Timeline.GetUserTimeline(<user_identifier>);
对于身份验证,您还需要1行:
// User authentication
Auth.SetUserCredentials("CONSUMER_KEY", "CONSUMER_SECRET", "ACCESS_TOKEN", "ACCESS_TOKEN_SECRET");
// Application-Only authentication
Auth.SetApplicationOnlyCredentials("CONSUMER_KEY", "CONSUMER_SECRET", true);
如果这有任何帮助,请告诉我。