質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

2回答

4296閲覧

JSで、base64にエンコードされた画像データをslack APIでuploadする方法

Tsukuni

総合スコア34

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2018/11/09 14:57

base64にエンコードされた画像データをslack APIでuploadする方法がわかりません。
下に載せているコードを実行すると、no_file_dataとなります。
アドバイスよろしくお願いします。

$('#saveButton').click(function(){ const canvas = document.getElementById('can'); const img = canvas.toDataURL('image/png'); const formData = new FormData(); formData.append("file", img); const data = { token: SLACK_API_TOKEN, channel: '#general', username: 'sample' } $.ajax({ type: 'POST', url: POST_URL, data: data, formData, success: function(data) { console.log(data) } }); })

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

slack API は扱ったことがないのでわかりませんが、まずajaxに渡すオブジェクトの作り方がおかしいですね。

JavaScript

1 const formData = new FormData(); 2 formData.append("file", img); 3 formData.append('token', SLACK_API_TOKEN); 4 formData.append('channel', '#general'); 5 formData.append('username', 'sample'); 6 7 $.ajax({ 8 type: 'POST', 9 url: POST_URL, 10 data: formData, 11 // 以下略。 12 });

Base64エンコードがいるというのは本当でしょうか?
https://api.slack.com/methods/files.upload

投稿2018/11/13 04:31

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Blobに変換する必要があるのでは(未検証)。

【canvas - Canvasの中身を、formとしてPOSTしたい|teratail】
https://teratail.com/questions/11714

【javascript - Convert Data URI to File then append to FormData - Stack Overflow】
https://stackoverflow.com/questions/4998908/convert-data-uri-to-file-then-append-to-formdata

【canvasで描いた絵をバイナリ形式でサーバーにPOST送信する方法 | while(isプログラマ)】
https://am-yu.net/2014/03/09/canvas-blob/

【Canvasで描画した画像を送信してサーバに保存する - Qiita】
https://qiita.com/0829/items/a8c98c8f53b2e821ac94

【canvas を用いて選択されたローカルファイルをリサイズし、ajaxで送信するまでのサンプル 選択されたのがイメージファイルでなければそのまま送信する · GitHub】
https://gist.github.com/haiiro-shimeji/5848850#file-file_uploader-js-L136

投稿2018/11/11 15:07

編集2018/11/11 15:08
kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問