php - 无法使用 PHP+cURL 发布到 Shopify Private App
问题描述
在我的 PHP 代码中似乎找不到错误。我正在尝试通过 Shopify API 添加客户,下面是我的代码。我使用 Postman 尝试了相同的 URL,它起作用了——当我添加相同的 JSON 字符串时,用户被添加。所以我知道在 Shopify 中使用正确的权限正确启用了 API。
$API_KEY = '****';
$PASS = '****';
$STORE_URL = '****';
$DATE = "2021-07";
$USER_EMAIL = 'test@test.com';
$baseUrl = 'https://'.$API_KEY.':'.$PASS.'@'.$STORE_URL.'/admin/api/'.$DATE.'/customers.json';
// post to: POST /admin/api/2021-07/customers.json
$data = array('customer' =>
array(
'first_name' => 'Promo',
'last_name' => 'User',
'email' => $USER_EMAIL,
'accepts_marketing' => 'true',
),
);
echo "test post data:";
echo json_encode($data);
$session = curl_init( $baseUrl );
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
curl_setopt($session, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($session, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($session, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($session,CURLOPT_SSL_VERIFYPEER,false);
$response = curl_exec($session);
curl_close($session);
$json = json_decode( $response, true );
echo "test return data:";
var_dump($json);
代码打印以下内容,返回 NULL 并且没有添加客户:
test post data:{"customer":{"first_name":"Promo","last_name":"User","email":"test@test.com","accepts_marketing":"true"}}test return data:NULL
谁能发现我在这里做错了什么?
解决方案
没关系,我只是想通了。该行
curl_setopt($session, CURLOPT_CUSTOMREQUEST, 'PUT');
应该是
curl_setopt($session, CURLOPT_CUSTOMREQUEST, 'POST');
推荐阅读
- sql - 在 SQL Server 中查找表列表中日期列的最新值
- python - 如何在课堂上使用 scipy 的最小化?
- flutter-web - Flutter - ListView 未显示
- node.js - Heroku 部署错误 - ![remote denied] master -> master (pre-receive hook denied)
- powerbi - 如何获取 Power BI 矩阵行中的总数
- angular - 目标入口点“@angular/fire/database”缺少依赖项: - @angular/core
- c# - 为国家下拉列表序列化对象
- r - 将包含总计和百分比的行添加到 DT 数据表
- c# - 使用 C# 登录远程计算机
- angular - 如何使用 angular、ng-zorro-antd 等配置 Tailwind css?