Instagram API-神秘反应;不知道是否可以正常工作,并且无法使用此

问题描述 投票:2回答:1

我正在开发一个Rails应用程序,该应用程序要求以全能方式登录到Instagram。这将是我第一次使用Instagram的OAuth终结点,目前尚不清楚它是否正常工作(并且项目经理也不清楚)。

我正在将cURL实现与以下内容一起使用(以后将重置它,但会收到“找不到匹配的代码”错误,这似乎是逻辑上的第一步。

curl \-F 'client_id=4658fa17d45244c88dd13c73949a57d7' \
    -F 'client_secret=ae6cfe5d13544eada4dece2ec40ac5dc' \
    -F 'grant_type=authorization_code' \
    -F 'redirect_uri= http://seek-style.herokuapp.com/arc/services/instagram' \
    -F 'code=CODE' \https://api.instagram.com/oauth/access_token

有回应

{"code": 400, "error_type": "OAuthException", "error_message": "No matching code found."}

我做某件事明显错了吗?是否有完成此操作的完整示例?我看过https://github.com/ropiku/omniauth-instagram,但无法确定是否仍在工作。规格通过,但实际呼叫被模拟。

编辑#1

[每条评论,我添加了一个链接到仓库https://github.com/trestles/seek,该链接正用于部署到Heroku。应用程序中基本上没有任何内容,据我所知,上面的cURL应该有效(也没有作用),因此我什至没有真正测试过。也许我甚至误解了Instagram的API的工作方式。

ruby-on-rails oauth oauth-2.0 omniauth instagram
1个回答
1
投票

所以,我对Instagram API进行了一些研究。

所有必填信息位于:http://instagram.com/developer/authentication/

首先,您需要从Instagram获取一次性代码。对于您的应用程序,这非常简单。

只需将[auth to instagram]的href设置为:

"https://api.instagram.com/oauth/authorize/?client_id=4658fa17d45244c88dd13c73949a57d7&redirect_uri=http://seek-style.herokuapp.com/arc/services/instagram&response_type=code"

您将收到以CODE为参数的API重定向

您可以在services_controller#instagram中进行处理,也可以仅从应用程序日志中提取。

应该有类似

Processing by ServicesController#instagram as HTML
    Parameters: {"code"=>"c25dcdcb96ed4eb9a508fede0cb94e87", "state"=>"e3d6dc22d6cd3cdebf6fb9e51a728a120a6d901cc382c4bf"}

然后您应该从API请求ACCESS_TOKEN使用cURL:

curl \-F 'client_id=YOUR_CLIENT_ID' \
-F 'client_secret=YOUR_CLIENT_SECRET' \
-F 'grant_type=authorization_code' \
-F 'redirect_uri= http://seek-style.herokuapp.com/arc/services/instagram' \
-F 'code=CODE_FROM_ABOVE' \https://api.instagram.com/oauth/access_token

或在services_controller#instagram中使用RestClient:

resp = RestClient.post 'https://api.instagram.com/oauth/access_token', {
  client_id: 'YOUR_CLIENT_ID',
  client_secret: 'YOUR_CLIENT_SECRET',
  grant_type: 'authorization_code',
  redirect_uri: 'http://seek-style.herokuapp.com/arc/services/instagram',
  code: params[:code]
}

控制器中的cURL响应或resp.body应包含以下内容:

{
  "access_token":"1515660384.9f652d3.fcb1e712d41347069ad5c65ccfada994",
  "user":{
    "username":"petro.softserve",
    "bio":"",
    "website":"",
    "profile_picture":"http:\/\/images.ak.instagram.com\/profiles\/anonymousUser.jpg",
    "full_name":"",
    "id":"1515660384"
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.