Jakarta ee Instagram API错误500带有强制签名的UTF-8哈希标记

Jakarta ee Instagram API错误500带有强制签名的UTF-8哈希标记,jakarta-ee,utf-8,instagram,urlencode,instagram-api,Jakarta Ee,Utf 8,Instagram,Urlencode,Instagram Api,我收到一个简单的instagram GET请求,出现500个错误。当标签包含普通ascii字符时,或者当我的应用程序未选中“强制签名请求”复选框时,我的代码可以工作。但当我尝试使用utf8标签并强制执行签名请求时,我无法获得任何工作。我看到签名的请求很快就会被强制执行,所以我需要它来工作。我想为像#über这样的标签获取所有图像 我得到的回应是什么 Info: SIGNING DATA: /tags/%C3%BCber/media/recent|client_id=xxxxxxxxxxxxx

我收到一个简单的instagram GET请求,出现500个错误。当标签包含普通ascii字符时,或者当我的应用程序未选中“强制签名请求”复选框时,我的代码可以工作。但当我尝试使用utf8标签并强制执行签名请求时,我无法获得任何工作。我看到签名的请求很快就会被强制执行,所以我需要它来工作。我想为像#über这样的标签获取所有图像

我得到的回应是什么

Info:   SIGNING DATA: /tags/%C3%BCber/media/recent|client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Info:   SIG VAL: 503fd3fb7072eea8284576940b3fe75125a5bbbd9f505f22507776cbb6760d5d
Info:   Sending 'GET' request to URL : https://api.instagram.com/v1/tags/%C3%BCber/media/recent?client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&sig=503fd3fb7072eea8284576940b3fe75125a5bbbd9f505f22507776cbb6760d5d
Info:   Response Code : 500
Info:   Response Msg : INTERNAL SERVER ERROR
数据响应为:Oops,发生错误


我在端点和签名数据中尝试了许多不同的哈希标记编码组合。奇怪的是,如果是签名问题,我收到的是500错误,而不是403错误。我的编码有问题吗?

我认为这个问题显然是Instagram API的一个缺陷。
我测试了各种请求模式

已启用“强制签名请求”

/v1/tags/search?access_token=<access token>&q=%e3%81%82&sig=<correct sig>
/v1/tags/search?access_token=<access token>&q=%e3%81%82&sig=<correct sig>
/v1/tags/search?访问令牌=&q=%e3%81%82&sig=
->500(预计200)

/v1/tags/search?access_token=<access token>&q=%e3%81%82&sig=<incorrect sig>
/v1/tags/search?access_token=<access token>&q=%e3%81%82
/v1/tags/search?访问令牌=&q=%e3%81%82&sig=
->500(预计403)

/v1/tags/search?access_token=<access token>&q=%e3%81%82&sig=<incorrect sig>
/v1/tags/search?access_token=<access token>&q=%e3%81%82
/v1/tags/search?访问令牌=&q=%e3%81%82
->403(如预期)

/v1/tags/search?访问令牌=&q=abc&sig=
->200(如预期的那样)

禁用了“强制签名请求”

/v1/tags/search?access_token=<access token>&q=%e3%81%82&sig=<correct sig>
/v1/tags/search?access_token=<access token>&q=%e3%81%82&sig=<correct sig>
/v1/tags/search?访问令牌=&q=%e3%81%82&sig=
->200(如预期的那样)

/v1/tags/search?访问令牌=&q=%e3%81%82&sig=
->403(如预期的那样)

启用“强制签名请求”时,uri中包含非ascii utf-8字符的请求总是会得到500。如果关掉它,一切正常。这显然不是由错误的sig参数或错误编码引起的问题。
我已经在10天前通过bugtool向Instagram报告了这个问题。到目前为止,他们没有任何反应。
(很抱歉再次回答。我的第一个答案已被删除。)

[9月5日更新]
这个问题似乎终于解决了。
我的IG应用程序现在可以使用强制签名请求设置正常工作。

注意:如果端点uri包含url编码字符(例如/tags/%E3%81%82/media/recent),则需要从解码的端点字符串生成sig参数。

我刚收到Instagram的消息,告诉我这确实是一个bug,现在已经修复\o/

您好,感谢您的报告和对Instagram平台的兴趣。这个 问题已经解决。最好的,杰基 -Instagram团队


我也有同样的问题,我刚刚在instagram的bug工具上打开了一个bug。希望他们能尽快回复。大约一个月前,我还向instagram提交了一份bug报告,但不幸的是他们没有回复。他们实际上说,如果他们需要更多信息,他们“可能”会联系你。因此,我只能假设他们不需要更多信息,正在进行修复。您确定
signRequest
中的字符串是人类可读的文本吗?在那里你可以试试“ISO-8859-1”。如果字符串被滥用以包含二进制字节。错误的
字符串
用法i.o.
字节[]
会产生问题,性能较差。这是一个bug。签名请求由密钥(静态字符串)、端点和客户端id组成。问题在于,即使url正确转义,端点中的utf8字符也没有得到正确处理。这个错误现在已经修复了。是的,它现在可以工作了,很好。我也收到了他们的电子邮件:)