创建广告资源Square API / UNIREST图片上传

时间:2017-04-05 19:05:53

标签: square-connect unirest

我想在我的网站上创建一个产品,并在广场上创建(这是有效的)。但是我也想设置初始库存,似乎没有办法从文档中做到这一点。 https://docs.connect.squareup.com/api/connect/v1/#post-inventory-variationid

如果我进入我的方形帐户,我可以手动设置初始金额,然后查询该条目并获取ID并更新它,但是谁想要手动执行任何操作。它打败了目的。有没有办法创建库存条目?

我的第二个困难是使用unirest上传图像。

function uploadItemImage($itemId, $image_file) 
{
    global $accessToken, $locationId, $connectHost; 
    $requestHeaders = array 
    (
      'Authorization' => 'Bearer ' . $accessToken,
      'Accept' => 'application/json',
      'Content-Type' => 'multipart/form-data;'
    );  
    $request_body = array
    (   
'image_data'=>Unirest\Request\Body::file($image_file, 'text/plain', myproduct.jpg')
    );
    $response = Unirest\Request::post($connectHost . '/v1/' . $locationId . '/items/'.$itemId.'/image', $requestHeaders, $request_body);
    print(json_encode($response->type, JSON_PRETTY_PRINT)); 
}

其中$ itemId取自先前创建的产品,$ image_file是我服务器上文件的直接链接

我一直收到这个错误...

> PHP Fatal error:  Uncaught exception 'Unirest\Exception' with message
> 'couldn't open file "https://somewebsite/myPicture.jpg"  ' in
> rootFolder/Unirest/Request.php:479  Stack trace: 
> #0 rootFolder/Unirest/Request.php(292): Unirest\Request::send('POST', 'https://connect...', Array, Array, NULL, NULL) 
> #1 rootFolder/

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

最大限度地利用您的问题的方法!

  1. 目前没有办法通过API设置初始广告资源,但新项目和广告资源管理API正在开发中,详情请参阅Square Blog
  2. 我假设您并没有真正使用"https://somewebsite/myPicture.jpg",但似乎unirest认为您正在尝试使用网址而不是从您的文件系统获取文件。尝试以下curl命令,看看是否可以将所有部分匹配为unirest:
  3. :)

    curl --request POST \
    --url https://connect.squareup.com/v1/XXXXXX/items/XXXXX/image \ 
    --header 'authorization: Bearer sq0atp-XXXXX' \
    --header 'cache-control: no-cache' \
    --header 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
    --form image_data=@/Users/ManuEng13/Desktop/test.png