我用来连接机器人的bash命令是:curl -ik -X POST' https://graph.facebook.com/v2.6/me/messages?access_token=#AccessToken'
我的错误信息是:
{"错误":{"消息":"(#100)参数收件人是 所需""类型":" OAuthException""代码":100," fbtrace_id":" EFqWAGq2ABs&#34 ;}}
有人如何解决它?
答案 0 :(得分:4)
万一有人错过了这个,我在意外使用错误的内容类型时遇到了这个问题 - 我使用的是application/x-www-form-urlencoded
而不是application/json
所以我的建议是,
答案 1 :(得分:1)
您需要发送收件人ID参数。尝试:
curl -X POST -H "Content-Type: application/json" -d '{ "recipient":{"id":"YOUR RECIPIENT ID" }, "message":{ "text":"hello from bot" }}' "https://graph.facebook.com/v2.6/me/messages?access_token=YOUR_ACCESSTOKEN"
最好的问候。
答案 2 :(得分:1)
请使用“thread_settings”端点“https://graph.facebook.com/v2.6/me/thread_settings”作为API端点。
您正在使用消息端点。
答案 3 :(得分:1)
归结为机器人的逻辑。我最近也遇到了这个错误,我花了几天时间来调试它。对我来说问题是我在编译callSendAPI(messageData)
对象的函数之外调用了messageData
方法。
显然,将messageData
传递给编译它的函数之外会发送一个空对象而不是已编译的对象。因此错误消息(#100) The parameter recipient is required
。仅仅因为空对象没有定义任何receipientId
。
请检查您的代码逻辑,以确保您没有犯同样的错误。希望这有帮助:)快乐编程。
答案 4 :(得分:1)
端点错误。而不是https://graph.facebook.com/v2.6/me/messages?access_token=#AccessToken
,请使用此端点
https://graph.facebook.com/v2.6/me/messenger_profile?access_token=<PAGE_ACCESS_TOKEN>
当我们不阅读文档时会发生这种情况。信息就在这里https://developers.facebook.com/docs/messenger-platform/discovery/welcome-screen#, 正好在&#34;设置入门按钮回发&#34; 。
答案 5 :(得分:1)
一段时间以前,我也遇到类似的错误。尝试使用邮递员。我尝试了相同的请求,并替换了用户ID和页面访问令牌。工作正常。
单击顶部的Import
按钮,并将您的卷曲请求粘贴在raw下。然后尝试运行该呼叫。如果您遇到相同的错误,请转到正文并对其进行修改。确保将其放在Postman请求的正文部分。将收件人ID替换为您的ID。
{
"recipient":
{
"id":"123456789"
},
"message":
{
"text":"hello, world!"
}
}
这是完整的cURL调用:更改收件人ID和页面访问令牌
curl -X POST -H "Content-Type: application/json" -d '{ "recipient":{"id":"1234567" }, "message":{ "text":"hello from bot" }}' "https://graph.facebook.com/v2.6/me/messages?access_token=PASTETHETOKENHERE"
答案 6 :(得分:0)
如果代码中出现错误(语法或逻辑错误),也可能会出现此问题。在我的情况下,我在webhook.php
的代码中有这部分(这是我在Facebook注册的回调页面)
$message = $input['entry'][0]['messaging'][0]['message']['text'];
"message":{
"text":"Sorry, we currently do not have an article related to "'.$message.'"."
}
当我将https://domain.com/webhook.php注册为回调时,它不会收到任何$message
,因此会导致错误,并且不会接受我的回调网址。
检查您的代码并确保只回应挑战。
$challenge = $_REQUEST['hub_challenge'];
$verify_token = $_REQUEST['hub_verify_token'];
if ($verify_token === 'verify_token') {
echo $challenge;
}
答案 7 :(得分:0)
此错误消息还有另一个原因:当您发送错误字符(如a -tab-)时,Facebook也会返回此错误,因此请检查特殊字符上的返回文本。