LINE develpoerで動画送信

やりたいこと
LINE develpoerで指定したmp4ファイルを送る


つまったところ

 $post = array(
        'type' => 'video',
        'originalContentUrl' => 'movie/linetest.mp4',
        'previewImageUrl' => 'movie/voice5.png'
    );

動画ファイルをローカルから遅れるのかどうか知らないが、試してみてもできなかった

ついでにgoogleドライブに入れてそのリンクを貼り付けても動画を送ることができなかった

どのURL送ればいいんだ

 

全体のコード

 

<?php
lineBroadcast('send message');

function lineBroadcast($text){
    $channelToken = 'token';
    $headers = [
        'Authorization: Bearer ' . $channelToken,
        'Content-Type: application/json; charset=utf-8',
    ];

    $post = [
        "type" => "video",
        "originalContentUrl" => "https://symfo.web.fc2.com/sample_src/line/chika.mp4",
        "previewImageUrl" => "https://symfo.web.fc2.com/sample_src/line/preview.jpg"
    ];

    $url = 'https://api.line.me/v2/bot/message/broadcast';
    $post = json_encode($post);

    $ch = curl_init($url);
    $options = [
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_HTTPHEADER => $headers,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_BINARYTRANSFER => true,
        CURLOPT_HEADER => true,
        CURLOPT_POSTFIELDS => $post,
    ];
    curl_setopt_array($ch, $options);

    $result = curl_exec($ch);
    $errno = curl_errno($ch);

    if ($errno) {
        print_r($errno);
    }else{
        echo 'SUCCESS';
    }
}
?>


$body = json_encode([
    'messages' => [
        $message,
    ]
]);

普通にネットに上がっている動画とimgでよかったっぽい

でも送信ができなかったので意味なし

解決

単純にjsonの書き方が間違っていた messagesというkeyがないため送信することができなかった line apiの使用かわかっていないので調査する必要がある

$post = [
        'messages' => [
            [
                "type" => "video",
                "originalContentUrl" => "https://symfo.web.fc2.com/sample_src/line/chika.mp4",
                "previewImageUrl" => "https://symfo.web.fc2.com/sample_src/line/preview.jpg"
            ],
        ],
    ];


これがあればいちいち

s3に上げずにサイトからURLを借りて貼り付けるだけでいい

 

参考

https://symfoware.blog.fc2.com/blog-entry-2389.html

https://blitzgate.co.jp/blog/2089/

https://qomolangma.jp/class/2059/