自分は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?>
あなたの回答
tips
プレビュー