pythonでメッセージ送信 (File)のResourceID方式を試みています。 - トークBot - LINE WORKS Developers : コミュニティ

コミュニティ

LINE WORKSのテクニカルエキスパート及び開発者と
コードのサンプル、リソース、Tip等を共有し問題解決への相談が可能です。

??dev_메인_타이틀_모바일_ja_JP??

トークBot

pythonでメッセージ送信 (File)のResourceID方式を試みています。

金博則

2021.02.22既読 83

pythonで

メッセージ送信 (File)
ResourceID方式を試しています。
コンテンツアップロード
とネットを参考に下のようなものを見よう見まねで作成しました。
def uploadFILE(key,token,apiid,filename):
   headers = {
       'Content-Type': 'multipart/form-data; boundary=----------------------------74eee5798fec',
       'consumerKey': key,
       'authorization': 'Bearer ' + token ,
       'x-works-apiid': apiid ,
   }
   payload = {
       'Content-Disposition': 'form-data; name="resourceName"; filename=' + filename
   }
   r = requests.post(uploadURL, data=json.dumps(payload), headers=headers)
実行後の結果は
('Connection aborted.', ConnectionResetError(10054, '既存の接続はリモート ホストに強制的に切断されました。', None, 10054, None))
と出てしまいます。
ただ、
アップロードはされているようで、
その後の
ResourceID
は取得でき、
メッセージ送信 (File)
もできました。
可能であれば、
メッセージが出ないようにしたいのですが、ご存知の方がおられましたら教えてください。
よろしくお願いいたします。

コメント2

  • 업데이트 된 답글입니다.

    佐藤正宗

    こんにちは。参考になるかわかりませんが、私が成功したコードを貼り付けておきますね。
    私の環境では ConnectionResetError は出ませんでしたよ。

    ------------------------------------------------
    import requests

    url = "https://storage.worksmobile.com/openapi/message/upload.api";

    payload={}
    files=[
     ('resourceName',('test.png',open('/Users/xxxxxxxx/Desktop/TEST_PNG.png','rb'),'image/png'))
    ]
    headers = {
     'x-works-apiid': 'xxxxxxxxxxx',
     'consumerKey': 'xxxxxxxxxxx',
     'Authorization': 'Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    }

    response = requests.request("POST", url, headers=headers, data=payload, files=files)

    print(response.headers)
    ------------------------------------

    2021.02.26

    0
  • 업데이트 된 답글입니다.

    金博則 投稿者

    ありがとうございました。
    どこに何を書けばよいのかわかっていなかったもので
    大変助かりました。

    2021.02.26

    0
前の投稿 RECEPTIONISTとLINE WORKSの連携について
次の投稿メンバー追加のAPIでのINTERNAL_SERVER_ERROR