実現したいこと
LINE messaging APIを用いて音声データ(hissatsu.mondo.m4a)を送りたい
前提
音声データをcodespace上に置き、URLは以下のようにしました。
https://〇〇〇〇〇〇〇/△△△△/Folder1/Floder2/hissatsu.mondo.m4aとしました。
発生している問題・エラーメッセージ
GitHubのcodespaceのターミナルでは”Message sent successfully”と表示されます。しかし、携帯のLINEアプリ、PCのLINEアプリともに再生できませんでした。
(携帯のLINEアプリ)
実際にLINEアプリを確認したところ何かしらデータらしきものは届いているのですが、再生ボタンを押しても音声が再生されません。
(PCのLINEアプリ)
何かしらデータらしきものは届いているのですが、同じく再生ボタンを押しても音声が再生されません。
こちらは”ネットワークやサーバのエラーにより再生できません。もう一度お試しくださいという”エラーメッセージが出ます。
さらに、下記でフォルダを開くを選択すると、”×××.aac”という.m4aとは違う拡張子のデータ、かつ音声ファイル名も数字の羅列の違う名前になっているのも気になりました。
該当のソースコード
javascript
1const axios = require('axios'); 2 3// LINEのアクセストークンとチャネルシークレット 4const CHANNEL_SECRET = '△△△△△△△△△△△△△△△△△△△'; 5const ACCESS_TOKEN= '〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇'; 6 7// メッセージイベントの送信先ユーザID 8const userId = '●●●●●●●●'; 9 10// 再生する音声ファイルのURL 11//const audioUrl = 'https://drive.google.com/file/d/■■■■■■■■■/view?usp=sharing' 12const audioUrl = 'https://〇〇〇〇〇〇〇/△△△△/Folder1/Floder2/hissatsu.mondo.m4a'; 13 14// Messaging APIのメッセージイベントの送信 15function sendAudioMessage(userId, audioUrl) { 16 const headers = { 17 'Content-Type': 'application/json', 18 'Authorization': `Bearer ${ACCESS_TOKEN}` 19 }; 20 21 const payload = { 22 to: userId, 23 messages: [ 24 { 25 type: 'audio', 26 originalContentUrl: audioUrl, 27 duration: 97000 // 音声の長さ(ミリ秒) 28 } 29 ] 30 }; 31 32 axios.post('https://api.line.me/v2/bot/message/push', payload, { headers: headers }) 33 .then((response) => { 34 console.log('Message sent successfully'); 35 }) 36 .catch((error) => { 37 console.error('Error:', error.message); 38 }); 39} 40 41// メッセージイベントの送信 42sendAudioMessage(userId, audioUrl); 43
試したこと
CodespaceのURLに問題があるかと思いましたので、Google driveに保存しなおして、共有レベルをリンクを知ってる全員に変更してリンクをコピーのURLに変更して再度試しましたが、ダメでした。
// 再生する音声ファイルのURL
const audioUrl = 'https://drive.google.com/file/d/■■■■■■■■■/view?usp=sharing'
補足情報(FW/ツールのバージョンなど)
node.js : version19. 9. 0
ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー