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

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回答

274閲覧

line botからの返信が来ません。プログラムコードはこれで正しいでしょうか(php)

yubon

総合スコア13

LINE Messaging API

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

PHP

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

0グッド

1クリップ

投稿2018/10/06 11:58

編集2018/10/06 17:02

line botに関してbotからの返信をいただけなくて困っています。プログラムのコードはこれで正しいでしょうか。もし分かる方がいれば教えてください。

php

1<?php 2 3$accessToken = 'LINEのアクセストークン(管理画面より取得)'; 4 5// 受信したメッセージ情報 6$raw = file_get_contents('php://input'); 7$receive = json_decode($raw, true); 8 9$event = $receive['events'][0]; 10$replyToken = $event['replyToken']; 11$messageType = $event['message']['type']; 12 13// 送られてきたのが位置情報以外だったら応答しない 14if($messageType != "location") exit; 15 16$lat = $event['message']['latitude']; 17$lon = $event['message']['longitude']; 18 19// 送られてきた位置情報を元にぐるなびのAPIにアクセスしてマクドナルドの店舗情報を取得する 20$uri = 'https://api.gnavi.co.jp/RestSearchAPI/20150630/'; 21$accKey = 'ぐるなびのアクセスキー(アカウント発行後メールにて送られてきます)'; 22 23$url = $uri . '?format=json&name=マクドナルド&range=5&keyid=' . $accKey . '&latitude=' . $lat . '&longitude=' . $lon; 24 25$json = file_get_contents($url); 26$obj = json_decode($json); 27 28// 店舗情報を取得 29$count = 0; 30$columns = array(); 31foreach ($obj->rest as $restaurant) { 32 $columns[] = array( 33 'thumbnailImageUrl' => $restaurant->image_url->shop_image1, 34'text' => $restaurant->name, 35 'actions' => array(array( 36 'type' => 'uri', 37 'label' => '詳細を見る', 38 'uri' => $restaurant->url 39 )) 40 ); 41 if (++$count > 5) { // 最大5店舗の情報を返す 42 break; 43 } 44} 45 46// LINEで返信する内容 47$headers = array('Content-Type: application/json', 48 'Authorization: Bearer ' . $accessToken); 49 50if ($columns) { 51 $template = array('type' => 'carousel', 52 'columns' => $columns); 53 54 $message = array('type' => 'template', 55 'altText' => 'マクドナルドの店舗情報', 56 'template' => $template); 57} else { 58 $message = array('type' => 'text', 59 'text' => '残念ですが、近くにマクドナルドはありませんでした。'); 60} 61 62$body = json_encode(array('replyToken' => $replyToken, 63 'messages' => array($message))); 64$options = array(CURLOPT_URL => 'https://api.line.me/v2/bot/message/reply', 65 CURLOPT_CUSTOMREQUEST => 'POST', 66 CURLOPT_RETURNTRANSFER => true, 67 CURLOPT_HTTPHEADER => $headers, 68CURLOPT_POSTFIELDS => $body); 69 70$curl = curl_init(); 71curl_setopt_array($curl, $options); 72curl_exec($curl); 73curl_close($curl); 74

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/10/06 13:35

自分自身にへんとうしないんじゃないの?きっと
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問