cURL Facebook API 请求参数列表太长

cURL Facebook API request argument list too long

我正在使用 Facebook Graph API 将用户列表上传到自定义受众。在此操作的文档中,它说我应该能够一次上传多达 10,000 个用户。但是,cURL 阻止我使用当前命令的格式这样做,并且文档没有提供任何其他格式化请求的选项。 这是我目前拥有的:

curl -X $HTTP_REQUEST_TYPE \
            -H "Content-Type: application/json" \
            --data-urlencode payload='{"schema": ["EMAIL_SHA256"],"data": ['$EMAIL_JSON']}' \
            -d "access_token=$API_KEY" \
        https://graph.facebook.com/v11.0/$AUDIENCE_ID/users

我尝试将负载和 access_token 添加为 json 格式的文件,但 API 拒绝 post 方法。 $EMAIL_JSON 是 10,000 长的散列电子邮件列表。这是我一直在使用的文档的 link:Facebook Documentation.

错误./facebook_api.sh: line 91: /bin/curl: cannot execute [Argument list too long] 任何帮助都会很棒。

我已经通过更改内容类型并使用名为“tempJson”的文件来存储数据来解决了这个问题:

curl -X $HTTP_REQUEST_TYPE \
            -H 'Content-Type: application/x-www-form-urlen-coded' \
            --data-urlencode payload@tempJson \
            -d "access_token=$API_KEY" \
        https://graph.facebook.com/v11.0/$AUDIENCE_ID/users

如您所见,我使用 payload@tempJson 来指定参数名称,以及其中包含的数据。我在 this website 找到了这个解决方案,它描述了 cURL 请求和使用 --data-urlencode 时的选项。文件中的数据看起来与我在问题中使用的数据完全相同。