【发布时间】:2021-01-20 07:14:46
【问题描述】:
我创建了一个在 mailchimp 中创建批处理 webhook 的函数,以便在批处理操作完成后提交回调。如下:
// register mailchimp batch webhook
$responseWH = wp_remote_post( 'https://' . substr($mcApi,strpos($mcApi,'-')+1) . '.api.mailchimp.com/3.0/batch-webhooks' ,array(
'headers' => array(
'method' => 'POST',
'Authorization' => 'Basic ' . base64_encode( 'user:'. $mcApi )
),
'body' => json_encode(array(
'url' => 'http://90660d72b8be.ngrok.io/wp-json/lubuvna/v2/batch/2810471250791421617231098394447326550803'
))
));
上面的代码意味着,当一个批处理操作完成时,MC 应该调用这个 url:
http://90660d72b8be.ngrok.io/wp-json/lubuvna/v2/batch/2810471250791421617231098394447326550803
如果调用此 url,则脚本将运行并通知我操作已完成并更新 wordpress 中的帖子。
但是由于标头状态代码是 404,mailchimp 没有将 url 添加到批处理 webhook 中。而是我收到以下错误:
{
"type": "http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/",
"title": "Invalid Resource",
"status": 400,
"detail": "The resource submitted could not be validated. For field-specific details, see the 'errors' array.",
"instance": "05a4430f-c68f-46a5-82af-3b95332d6fe83",
"errors": [
{
"field": "url",
"message": "We couldn't verify the URL is working. Please double check and try again. HTTP Code: 500"
}
]
}
当 Mailchimp 尝试向指定的 URL 发出 GET 请求时,如何在标头中返回 200 状态,同时添加批处理 webhook?他们需要一个有效的网址。 mailchimp batch webhook
我在 localhost 中使用 ngrok 进行连接,当我添加像 http://90660d72b8be.ngrok.io/wp-content/plugins/my-plugin/inc/batch/import.php 这样的 URL 时,它可以工作,因为该文件实际上存在于插件目录中
但在添加网址时http://90660d72b8be.ngrok.io/wp-json/lubuvna/v2/batch/2810471250791421617231098394447326550803
【问题讨论】:
-
你在说什么404?根据 API 的响应,他们从您的系统中获取了
HTTP Code: 500,这就是无法确认此 webhook URL 的原因。所以去弄清楚为什么您的系统以 500 响应。 -
@04FS 我已经编辑了我的问题。我可以看到来自 mailchimp 的 GET 请求在 ngrok 中显示“404 Not Found”。每次我运行添加批处理功能时,这就是为什么批处理 webhook 没有被添加到 mailchimp ......只有当我添加一个 url 时
wp-content/plugins/lubuvna-newsletter/inc/options/hooks/mailchimp/mailchim-script.php之类的脚本文件 -
那么您没有设置端点来正确处理该请求。
-
@04FS 这就是我在这里要问的......如何处理请求,以便 mailchimp 验证 url?
-
您在此处使用 WP REST API 端点,因此您需要首先在此处为您的操作
batch创建您自己的自定义端点。 developer.wordpress.org/rest-api/extending-the-rest-api/…
标签: php api callback webhooks mailchimp