我正在尝试收集包含特定主题标签的最近帖子列表。 API Documentation表示我应该使用以下GET调用:
https://api.instagram.com/v1/tags/{tag-name}/media/recent?access_token=ACCESS-TOKEN
当我加载要显示此信息的页面时,执行以下操作:
using(HttpClient Client = new HttpClient())
{
var uri = "https://api.instagram.com/v1/tags/" + tagToLookFor + "/media/recent?access_token=" + Session["instagramaccesstoken"].ToString();
var results = Client.GetAsync(uri).Result;
// Result handling below here.
}
作为参考,tagToLookFor是在类顶部定义的常量字符串(例如 foo ),我将从OAuth进程返回的访问令牌存储在Session对象中,其键为'instagramaccesstoken'。
在调试时,我检查确保URI正确形成,并且它确实包含标记名称和刚刚创建的access_token。使用具有相同URI的Apigee(另存为access_token)将返回我期望的有效结果。但是,尝试使用我的webstie上的URI进行GET返回:
{
StatusCode: 400,
ReasonPhrase: 'BAD REQUEST',
Version: 1.1,
Content: System.Net.Http.StreamContent,
Headers:{
X-Ratelimit-Remaining: 499
Vary: Cookie
Vary: Accept-Language
X-Ratelimit-Limit: 500
Pragma: no-cache
Connection: keep-alive
Cache-Control: no-store, must-revalidate, no-cache, private
Date: Fri, 27 Nov 2015 21:39:56 GMT
Set-Cookie: csrftoken=97cc443e4aaf11dbc44b6c1fb9113378; expires=Fri, 25-Nov-2016 21:39:56 GMT; Max-Age=31449600; Path=/
Content-Length: 283
Content-Language: en
Content-Type: application/json; charset=utf-8
Expires: Sat, 01 Jan 2000 00:00:00 GMT
}
}
我正在试图确定两者之间的差异;我能想到的唯一一件事就是当我在页面之间切换时,access_token会以某种方式失效。我在Login / Auth页面上做的最后一件事是使用Session.Add存储access_token,然后调用Server.Transfer移动到我正在调用它的页面。
有关问题的任何想法?感谢。
答案 0 :(得分:0)
在发出请求时将令牌附加到标题。
Client.DefaultRequestHeaders.Add("access_token", "Bearer " + token);
答案 1 :(得分:0)
问题最终成为关于沙箱模式的问题。我在切换后注册了一个应用程序,而且我是沙箱中唯一的用户。因此,查找我的帖子/信息没有问题,但沙盒模式就好像Sandbox用户是Instagram上的唯一用户一样,所以很自然地找不到其他用户。
事实证明我的组织中存在一个现有的注册应用程序(在切换日期之前制作)没有任何此类限制,所以我一直在使用该AppID /机密进行测试。
tl;博士:如果您是应用沙箱中唯一的用户,请努力让用户进入您的沙箱。有关详细信息,请参阅their article。