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

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

新規登録して質問してみよう
ただいま回答率
85.31%
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Q&A

解決済

2回答

6560閲覧

google driveに保存した写真をLINEに投稿したい

K.TAKASHI

総合スコア28

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

0グッド

4クリップ

投稿2019/09/01 03:05

編集2019/09/02 00:45

google driveに保存した写真をLINEに投稿したいのですが、写真データのURLがおかしいのか画像なしで投稿されてしまいます。

試したのは下記①②のUTLです。
WEB公開されている一般のURLでは無事に投稿できているため、対象PGM自体はきちんと動いているようです。
あくまでgoogle driveに保存されたファイルのID(fileId)をgetId()で取得し、下記の①②でimageUrlを作成しているところで画像取得が失敗しているようです。

①var imageUrl = 'https://drive.google.com/uc?id=' + fileId;
②var imageUrl = 'https://drive.google.com/uc?export=view&id=' + fileId;
※②では、本来httpですがhttpのままだとエラーとなるため、httpsに変更しています。

どなたか解決方法をご存知でしたらお知らせください。
よろしくお願いいたします。
(google driveに保存した写真をLINEに投稿することが目的です。他の方法でも構いません。)

【対象PGM】

google

1function sendImage(replyTo,imageUrl){ 2 UrlFetchApp.fetch(pushUrl, { 3 'headers': { 4 'Content-Type': 'application/json; charset=UTF-8', 5 'Authorization': 'Bearer ' + ACCESS_TOKEN, 6 }, 7 'method': 'post', 8 'payload': JSON.stringify({ 9 'to': replyTo, 10 'messages': [{ 11 'type': 'image', 12 'originalContentUrl': imageUrl, 13 'previewImageUrl': imageUrl, 14 }], 15 }), 16 }); 17 return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);

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

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

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

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

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

CHERRY

2019/09/01 10:17

ソースコードや設定等は、コード部分を選択してツールバーの <code> ボタンを利用するなどの方法で見やすく記述していただけないでしょうか。  [ソースコードを書きましょう]( https://teratail.com/help/question-tips#questionTips3-5-1 ) 参照
K.TAKASHI

2019/09/02 00:46

ご指摘ありがとうございます。 <code>ボタンを利用して修正いたしました。
guest

回答2

0

https://www.youtube.com/watch?v=Y1joksnUW04

この動画の方法で共有リンクにした後に
生成したURLで画像送信を試したところ
問題なく送信ができました。

上記が問題なく行えているのであれば、
画像の大きさか容量がMessaging APIの仕様より大きくなっていることが考えられます。
実際に送信している画像URLを共有してもらうことは可能でしょうか?

投稿2019/09/02 00:54

shoya.shiraki

総合スコア430

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

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

K.TAKASHI

2019/09/03 08:08

ご回答ありがとうございます。 共有リンクにして送信することも試してみましたが、LINEbotではうまく画像送信ができないようです。 なお、URLをテキストとして送信すればサムネイル画像として表示されることは確認いたしました。 ※画像データは16KBなので問題ないようです。
guest

0

自己解決

ファイル作成時にフォルダごとアクセス権限をANYONEに設定したうえで、①②どちらかでURLを設定したら無事に投稿することができました。
①imageUrl = 'https://drive.google.com/uc?id=' + fileId
②imageUrl = 'https://drive.google.com/uc?export=view&id=' + fileId

なお、蛇足ですがテキストデータで共有リンクを投稿する際は下記の形式でサムネイル画像が表示されました。
imageUrl = 'https://drive.google.com/file/d/' + fileId + '/view?usp=sharing'

どなたか私と同じように躓く方がいましたら、ぜひ参考にしてください。
今後とも、みなさまよろしくお願いいたします。

投稿2019/09/04 05:08

K.TAKASHI

総合スコア28

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問