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

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

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

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

6997閲覧

LINEのMessageAPIでpushしたい

ponpokoS

総合スコア11

LINE Messaging API

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2017/03/23 05:46

###前提・実現したいこと
LINE MessageAPIに関して質問です。
ユーザーとBotがトーク中に任意のタイミングで特定のトークを送りたい。

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

上記を実現させるには、PushAPIの利用が必要かと思い、
プログラムを組んでみたのですが上手く動作しない状態です。
同じ方法でreplyは正常に動作しました。

###試したこと

下記phpファイルをブラウザ上で実行すると、
string(37) "{"message":"Failed to send messages"}"
と表示されます。

以下、PushAPIを利用したプログラムになります。
アクセストークン等はPushAPIが利用できるアカウントから
取得し、WebhookURLにも登録済みです。

「line_push.php」

<?php //To $to = 'Uxxxx'; //Channel_Access_Token $Channel_Access_Token = 'XXXX'; $mes = 'テストメッセージです'; $response_format = [ "type" => "text", "text" => $mes ]; $post_data = [ "to" => $to, "messages" => [$response_format] ]; //post $channel = curl_init("https://api.line.me/v2/bot/message/push"); curl_setopt($channel, CURLOPT_POST, true); curl_setopt($channel, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($channel, CURLOPT_RETURNTRANSFER, true); curl_setopt($channel, CURLOPT_POSTFIELDS, json_encode($post_data)); curl_setopt($channel, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json; charset=UTF-8', 'Authorization: Bearer ' . $Channel_Access_Token )); $result = curl_exec($channel); var_dump($result); curl_close($channel); }

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

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

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

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

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

guest

回答1

0

ベストアンサー

ソースを拝見しましたが特に問題ないように思えます。

Push message APIはプランによっては利用できないようです。
Push message

フリープラン、ベーシックプランでは利用できないみたいですのでLine Bussiness Centerにログインしてアカウントリストから利用しているプランを確認してみてください。
Line Bussiness Center

投稿2017/03/23 06:56

kingkinoko

総合スコア96

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

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

ponpokoS

2017/03/23 08:19

ご確認ありがとうございます。 今は下記URLの下にあるDeveloper Trialプランで試しています。このプランだと追加可能友達数に制限はありますがPushAPIは使える感じです。 https://business.line.me/ja/services/bot ソース自体得に問題が無いとすると使い方に問題があるのかなとも思うのですが、 このphpファイルをどのように実行すればトークをユーザーのラインに送れるのでしょうか。 (単にサーバーURLをブラウザ等で実行してもダメでした) Replyだとラインのトーク内でユーザーが何かしらの発言を行うと WebhookURLを通じてプログラムが実行され、返信が動作することを確認しているのですが、、、 これがPushの場合だと、どうすれば良いのかが分かりません… お手数をおかけしますが、利用方法に関してご確認をよろしくお願いいたします。
kingkinoko

2017/03/23 08:52 編集

すみません、返信すべきところを新規コメントにしてしまいました。 こちらに再投稿します、また新規コメントのほうは削除依頼をかけておきます。 私の環境で試してみたところ正常にPush Messageによるメッセージ送信ができました。 LineアカウントはDeveloperアカウントです。 環境はPCにVMで立てているCENTOSでPHPは7.0です。 ソースは一番最後の行の'}'とvardumpの部分だけコメントアウトにしてそれ以外はそのまま利用しています。 実行方法はサーバに配置したPHPファイルをブラウザからURL指定で叩きました。 Channel_Access_TokenとUserIDをもう一度確認してみてください。 もしかしたらそちらに誤りがあるかもしれません。 //To $to = 'Uxxxx'; //Channel_Access_Token $Channel_Access_Token = 'XXXX';
ponpokoS

2017/03/24 01:55

詳細なご確認などありがとうございます。 こちらではブラウザから直接たたいてもうまくいきません、、 そちらで問題無いということは環境周りに問題があると思いますのでもう少し調べてみます。 今回は親切にご回答くださり、ありがとうございました。 内容に間違いが無いことだけでも確認できましたので助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.44%

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

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

質問する

関連した質問