【问题标题】:How to get Instagram api access token without browser redirect?如何在没有浏览器重定向的情况下获取 Instagram api 访问令牌?
【发布时间】:2016-10-15 23:23:51
【问题描述】:

我们有一个 Web API(ASP.net 和 C#)项目,它从所有四个不同的社交网站(facebook、twitter、youtube 和 instagram)收集最近的帖子(由我们的组织),并将它们作为 json 提要传递给网站和移动应用程序。

幸运的是,Facebook 和 Twitter 都提供了 Oauth“client_credentials”流,当我使用客户端 ID、客户端密码和授权类型为“client_credential”向“令牌端点”发出 POST 请求时,它允许我获取令牌,如下所示:

https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials

但我不确定如何处理 Instagram API,因为它没有提供“client_credentials”流程。由于令牌检索需要在函数的后端进行,而无需在 Web 浏览器中进行显式身份验证。

有人解决了这个问题吗?

【问题讨论】:

  • 我以前见过这个问题。答案并不能解决问题。
  • 他们在开发 API 时似乎没有考虑到这种情况,或者出于安全原因明确没有实现此流程。也许你必须忍受它。
  • 我猜他们没有想到这样的情况。希望 Instagram 开发者能看到这篇文章。

标签: c# access-token instagram-api


【解决方案1】:

如果您只想阅读 Instagram 帖子。

我知道这有点晚了,但我正在开发一个类似的应用程序,我在这里阅读了一篇关于如何获取 Instagram 帖子的帖子 (stackoverflow)。我无法记下原始帖子的链接,所以我只是在这里重写帖子。如果我找到原始帖子,我将在此处添加链接。如果有人找到,请添加到 cmets 中。

可以在您的用户名和以下网址的帮助下获取 Instagram 帖子: https://www.instagram.com/YOUR_USER_NAME/media 例如:https://www.instagram.com/NBA/media

这会返回一个帖子列表,不确定多长时间。但它返回了我的 20 个帖子。它也有'"more_available": true',所以应该可以得到更多。

得到这个的 C# 代码:

string username = "<YOUR_USER_NAME>";
string url = "https://www.instagram.com/"+ username + "/media/";

HttpWebRequest instaRequest = WebRequest.Create(url) as HttpWebRequest;
//optional
HttpWebResponse instaResponse = instaRequest.GetResponse() as HttpWebResponse;
string rawJson = new StreamReader(instaResponse.GetResponseStream()).ReadToEnd();

JObject InstagramJsonFeeds = JObject.Parse(rawJson);
// Loop through JObject and get the details
foreach (var Property in InstagramJsonFeeds["items"])
{
    var ImageUrl = Property["images"]["standard_resolution"]["url"].ToString();
    DateTime DTime = new DateTime(1970, 1, 1).AddSeconds(double.Parse(Property["created_time"].ToString()));

    // Etc Etc ......
}

如果这有帮助,请告诉我。

如何使用 CURL: http://blog.eezgu.com/2017/03/how-to-get-latest-images-from-instagram.html

【讨论】:

    【解决方案2】:

    我在旧项目中的方式。我只是在检查访问令牌是否仍然可用。如果没有打开 iframe 或弹出窗口来获取新的。所以你的大型机不需要刷新。

    retrieving Instagram access_token via api in c# a

    您需要随时公开此信息 任何进行身份验证的人。如果令牌过期,则需要弹出 再次登录验证视图。这是一种糟糕的身份验证方法,我 真的希望他们提供完整的 OAuth2 身份验证握手 可以只用 GET 完成。但他们没有,这就是为什么所有 3rd 您在那里看到的派对应用程序会在您之后出现“授权”页面 登录。-brandonscrip

    【讨论】:

    • 一个代码示例可以很好地补充您的答案
    • @CanUrek,你能发布一些你过去项目的代码吗?请记住,这是一个将在服务器上运行的 API 项目。最终用户不会直接访问 Instagram。此外,我们要从中获取图像的 Instagram 帐户属于我们公司,我们可以授权访问这些图像。
    猜你喜欢
    • 1970-01-01
    • 2014-03-29
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多