(Instagram API)达到标签端点的问题

本文关键字:标签 端点 问题 Instagram API | 更新日期: 2023-09-27 18:25:13

我正在收集一份包含特定标签的最近帖子列表。API文档指出,我应该使用以下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以某种方式被无效。我在登录/验证页面上做的最后一件事是使用Session.Add存储access_token,然后调用Server.Transfer移动到我调用它的页面。

有什么想法吗?谢谢

(Instagram API)达到标签端点的问题

在发出请求时将令牌附加到标头。

Client.DefaultRequestHeaders.Add("access_token", "Bearer " + token);

问题最终是关于沙盒模式的。我在切换后注册了一个应用程序,我是我的沙盒中唯一的用户。因此,它可以找到我的帖子/信息,但沙盒模式就像沙盒用户是Instagram上唯一的用户一样,所以它自然不会找到其他任何东西。

事实证明,我的组织中有一个现有的注册应用程序(在切换日期之前制作)没有任何此类限制,所以我一直在使用该AppID/secret进行测试。

tl;dr:如果你是应用程序沙盒中唯一的用户,那就努力让用户进入你的沙盒。有关更多信息,请参阅他们的文章。