1

Square Connect API ドキュメントに投稿された例と GitHub の例を確認しましたが、これらの例を画像のアップロードに関するガイダンスに適合させることができないようです: http://docs.connect.squareup.com/#ポストイメージ

課題の一部は、画像のアップロードのみが必要な Content-Type: multipart/form-data を使用することです。そのため、ドキュメントは存在しません (connect-api ドキュメントを使用)。

私の最終的な質問は、Square が画像をアップロードする方法の例を投稿できますか? 最も関連するのは、複数のアイテムを画像で更新する方法と、1 つのアイテムだけを更新する方法を示す例です。どんな助けでも大歓迎です。

4

1 に答える 1

2

ドキュメントのこのギャップを指摘していただきありがとうございます。以下の関数は、Requests Python ライブラリを使用してアイテムの画像をアップロードします (このライブラリにより、multipart/form-data リクエストが大幅に簡素化されます)。まだインストールしていない場合は、最初にRequestsをインストールする必要があることに注意してください。

import requests

def upload_item_image(item_id, image_path, access_token):

  endpoint_path = 'https://connect.squareup.com/v1/' + your location + '/items/' + item_id + '/image'

  # Don't include a Content-Type header, because the Requests library adds its own
  upload_request_headers = {'Authorization': 'Bearer ' + access_token,
                            'Accept': 'application/json'}

  # Be sure to set the correct MIME type for the image
  files = [('image_data', (image_path, open(image_path, 'rb'), "image/jpeg"))] 
  response = requests.post(endpoint_path, files=files, headers=upload_request_headers)

  # Print the response body
  print response.text
  • item_id画像をアップロードするアイテムの ID です。
  • image_pathアップロードする画像への相対パスです。
  • access_tokenあなたが代理しているマーチャントのアクセストークンです。

このエンドポイントへの 1 回のリクエストで複数のアイテムの画像をアップロードすることはできません。代わりに、アイテムごとに個別のリクエストを送信してください。

于 2015-01-21T22:51:14.690 に答える