0
我想开始使用Instagram的API,但我甚至不能做一个简单的通话,因为我得到一个错误的Instagram:签名不匹配
{"code": 403, "error_type": "OAuthForbiddenException", "error_message": "Invalid signed-request: Signature does not match"}
我产生我access_token
与范围为likes+comments
。
我生成使用这个脚本从Instagram的开发者网站上的签名,因为它最初给我
"Invalid signed-request: Missing required parameter 'sig'"
这是脚本:
# -*- coding: UTF-8 -*-
import hmac
from hashlib import sha256
def generate_sig(endpoint, params, secret):
sig = endpoint
for key in sorted(params.keys()):
sig += '|%s=%s' % (key, params[key])
return hmac.new(secret, sig, sha256).hexdigest()
endpoint = 'media/search'
params = {
'access_token': _______________,
'count': 10,
}
secret = ______________________
sig = generate_sig(endpoint, params, secret)
print "sig is",sig
任何帮助表示赞赏! 感谢
我认为''count':10'参数不应该在签名生成中传递,因为它不存在于url中。根据Insta文档 - >令牌:API端点附有您的请求参数的所有键/值对的串联,按键升序排序。每个键/值对由管道字符分隔。 因此,无论您是将计数添加到您的API请求网址还是将其从签名生成参数中移除,否则它仍会提供“无效的签名请求”错误! – coderz
@felipsmartins感谢您的回答。我尝试过,但仍然无法正常工作。它给了我相同的“签名请求无效:签名不匹配”错误。 – Arjun
@coderz我也试过。我将它从参数中删除,并将其网址添加为:https://api.instagram.com/v1/media/search?lat=48.858844&lng=2.294351&access_token=ACCESS-TOKEN&sig=SIG&count=10。但是,它仍然给我同样的错误! – Arjun