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

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

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

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

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

Q&A

0回答

464閲覧

LINEMessagingAPIを使用してLINEに音声データを送る方法を教えて頂けないでしょうか?

yoyoda

総合スコア11

LINE Messaging API

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

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

0グッド

0クリップ

投稿2023/05/30 07:20

編集2023/06/02 12:27

実現したいこと

LINEMessagingAPIを使用してLINEに音声データを送る方法を教えて頂けないでしょうか?

前提

開発環境は
GitHub Codespaces、
Node.js(ver19.9.0),
line/bot-sdk(ver7.5.2)を使っております。

Node.js所学者の為、ChatGPTに相談しながら、コードを書いていますが、うまくいかず、
煮詰まってしまいましたのでご相談させてください。

mp4のデータはcodespace上の実行ファイルと同階層においております。
また、実行時にポートはprivateからpublicに変更して実行しております。
音声データの容量は1Mbyte, ファイル拡張子は.m4aで公式ページの要求を致していると考えます
(https://developers.line.biz/ja/reference/messaging-api/#audio-message)。

発生している問題・エラーメッセージ

エラーは表示されておりませんが、音声データが送られない。

該当のソースコード

javascript

1'use strict'; 2 3const express = require('express'); 4const line = require('@line/bot-sdk'); 5const axios = require('axios'); 6 7const PORT = process.env.PORT || 3000; 8 9const config = { 10 channelSecret: '〇〇〇', 11 channelAccessToken: '〇〇〇' 12}; 13 14const client = new line.Client(config); 15 16// サンプル関数(音声ファイルを送信する) 17async function sendAudioMessage(event) { 18 // ローカルの音声ファイルパスを指定します 19 const audioFilePath = '/workspaces/po08-scbc1167/boot/work/0201_work/Mearas_Serious01.m4a'; 20 21 // LINE Messaging APIへのリクエスト用のデータを作成します 22 const message = { 23 type: 'audio', 24 originalContentUrl: 'https://●●●●-symmetrical-disco-●●●●-3000.preview.app.github.dev/Mearas_Serious01.m4a', // このURLは実際のサーバー上の音声ファイルに置き換えてください 25 duration: 60000 // 音声ファイルの再生時間(ミリ秒) 26 }; 27 28 // LINEユーザーに音声メッセージを送信します 29 await client.replyMessage(event.replyToken, message); 30 31 // 音声ファイルをLINE Messaging APIにアップロードします 32 await client.pushMessage(event.source.userId, { 33 type: 'audio', 34 originalContentUrl: 'https://your-server.com/audio.m4a', 35 duration: 60000 36 }); 37 38 // サーバー上で音声ファイルを公開します 39 const response = await axios.put('https://api.line.me/v2/bot/message/your-message-id/content', fs.readFileSync(audioFilePath), { 40 headers: { 41 'Content-Type': 'audio/m4a', 42 'Authorization': `Bearer ${config.channelAccessToken}` 43 } 44 }); 45 46 console.log(response.data); 47} 48 49const app = express(); 50 51app.post('/webhook', line.middleware(config), (req, res) => { 52 if (req.body.events.length === 0) { 53 res.send('Hello LINE BOT! (HTTP POST)'); 54 console.log('検証イベントを受信しました!'); 55 return; 56 } else { 57 console.log('受信しました:', req.body.events); 58 } 59 60 Promise.all(req.body.events.map(handleEvent)).then((result) => res.json(result)); 61}); 62 63app.listen(PORT); 64console.log(`ポート${PORT}番でExpressサーバーを実行中です…`); 65

試したこと

ChatGPTに相談し上記コードを実行しましたが、エラーは出ませんが、何も音声データは送られませんでした。

補足情報(FW/ツールのバージョンなど)

Node.js(ver19.9.0),
line/bot-sdk(ver7.5.2)です。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問