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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

0回答

1575閲覧

LINE BOT POSTできない

ISETACHIKOMA

総合スコア4

LINE Messaging API

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1グッド

0クリップ

投稿2020/03/13 14:51

編集2020/03/14 23:30

自分はLINE BOTを自分のサーバーで動かしています。
PHPでWEBHOOKを行いオウム返しをしようとしているのですが、データ
は受信できるのですが、サーバーからcurlコマンドを用いてサーバーに
POSTしているのですが、LINEに反映していません。
result = curl_exec($ch);をしてエラーを確認しても
中身がカラでエラーが出てないのです。どなたか原因がわかる人が
いたら教えてください。

PHP

1<?php 2 3// 送られて来たJSONデータを取得 4$json_string = file_get_contents('php://input'); 5$json = json_decode($json_string); 6 7 8 9 10//受信データをファイル出力 11$fh = fopen("recive_data.json", "w+b"); 12fwrite($fh, json_encode($json)); 13fclose($fh); 14 15 16 17 18if(isset($json)){ 19 20 21 22 // JSONデータから返信先を取得 23 $replyToken = $json->events[0]->replyToken; 24 //受信データをファイル出力 25 $fh = fopen("replyToken.txt", "w"); 26 fwrite($fh, $replyToken); 27 fclose($fh); 28 29 30 31 // JSONデータから送られてきたメッセージを取得 32 $message = $json->events[0]->message->text; 33  //受信データをファイル出力 34 $fh = fopen("message.txt", "w"); 35 fwrite($fh, $message); 36 fclose($fh); 37 38 39 40 41 42 43 44 45 46 47 48 $accessToken ="アクセストークン"; 49 50 51 52 //メッセージの送信 53 54 //レスポンスフォーマット 55 $response_format_text = [ 56 "type" => "text", 57 "text" => "hello" 58 ]; 59 60 //ポストデータ 61 $post_data = [ 62 "replyToken" => $replyToken, 63 "messages" => [$response_format_text] 64 ]; 65 //送信データをファイル出力 66 $fh = fopen("send_data.json", "w+b"); 67 fwrite($fh, json_encode($post_data)); 68 fclose($fh); 69 70 71 //curl実行 72 $ch = curl_init("https://api.line.me/v2/bot/message/reply"); 73 $fh = fopen("CURL.txt", "w"); 74 fwrite($fh, (string)$ch); 75 fclose($fh); 76 77 78 79 80 81 82 83 curl_setopt($ch, CURLOPT_POST, true); 84 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); 85 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 86 curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_data)); 87 curl_setopt($ch, CURLOPT_HTTPHEADER, array( 88 'Content-Type: application/json; charser=UTF-8', 89 'Authorization: Bearer ' . $accessToken 90 )); 91 $result = curl_exec($ch); 92 curl_close($ch); 93 94 95}else{ 96 echo 'NO DATA'; 97} 98?>
s.k👍を押しています

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

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

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

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

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

tktcorporation

2020/03/13 15:34

$ch の中身を出力して見せていただいても良いでしょうか?
ISETACHIKOMA

2020/03/13 23:25

TXTで出力したところ”Resource id #10”こんなのが入っていました。
退会済みユーザー

退会済みユーザー

2020/03/14 01:19

質問の体裁を整えてください。 コードを見る気になりません。
Takumiboo

2020/03/14 05:08

最低限、<code>ボタンで挿入できるコードブロックで囲んでください。 下記のような形にしてください。 ```PHP (ここにコードをペースト) ```
ISETACHIKOMA

2020/03/14 10:18

200resource(8) of type (curl) 実際にLINEのwebhookに応じている際みechoを確認できないので。自分でブラウザで試したところ上記のようなものが表示されました。
Takumiboo

2020/03/14 10:28

「echo '200';」これはステータスコードでもなんでも無い無意味なものなので、まず削除してください。 そして実際にWebhook動作時の出力を見るのであれば、結果をテキストなりに書き出すようにすれば良いです。 あと繰り返しとなりますが、質問文のコードを整形してください。
退会済みユーザー

退会済みユーザー

2020/03/15 00:09

curlのエラー関連関数は最低でも確認したってことでいいよね
ISETACHIKOMA

2020/03/15 00:38

そうです。なのでデータは指定したURLにPOSTできていると思います。
draq

2020/03/15 02:52

curl_exec() の後に curl_getinfo() を呼び出して HTTP コードを確認したらどうでしょうか。
退会済みユーザー

退会済みユーザー

2020/03/15 04:16

> そうです。なのでデータは指定したURLにPOSTできていると思います。 確認したのであればその確認結果を質問を編集して追記してください。 BAD REQUEST でしょうけど
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問