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

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

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

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

PHP

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2346閲覧

phpからpythonへ文言をPOSTしたい

yayoi_answer

総合スコア16

LINE Messaging API

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

PHP

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/03/14 10:19

編集2018/03/15 01:53

現在LINE messaging APIから来た入力内容phpでオウム返しするようにしています。
次はphpからpythonに入力内容をPOSTして、pythonで処理をしてphpを通して返すように変えたいです。

なにか実装のヒントをいただけたらと思います。
よろしくお願いいたします。

php

1<?php 2 3$accessToken = 'アクセストークンの記述'; 4 5$jsonString = file_get_contents('php://input'); 6error_log($jsonString); 7$jsonObj = json_decode($jsonString); 8 9$message = $jsonObj->{"events"}[0]->{"message"}; 10$replyToken = $jsonObj->{"events"}[0]->{"replyToken"}; 11 12 送られてきたメッセージの中身からレスポンスのタイプを選択 13if ($message->{"text"} == '確認') { 14 // 確認ダイアログタイプ 15 $messageData = [ 16 'type' => 'template', 17 'altText' => '確認ダイアログ', 18 'template' => [ 19 'type' => 'confirm', 20 'text' => '元気ですかー?', 21 'actions' => [ 22 [ 23 'type' => 'message', 24 'label' => '元気です', 25 'text' => '元気です' 26 ], 27 [ 28 'type' => 'message', 29 'label' => 'まあまあです', 30 'text' => 'まあまあです' 31 ], 32 ] 33 ] 34 ]; 35} elseif ($message->{"text"} == 'ボタン') { 36 // ボタンタイプ 37 $messageData = [ 38 'type' => 'template', 39 'altText' => 'ボタン', 40 'template' => [ 41 'type' => 'buttons', 42 'title' => 'タイトルです', 43 'text' => '選択してね', 44 'actions' => [ 45 [ 46 'type' => 'postback', 47 'label' => 'webhookにpost送信', 48 'data' => 'value' 49 ], 50 [ 51 'type' => 'uri', 52 'label' => 'googleへ移動', 53 'uri' => 'https://google.com' 54 ] 55 ] 56 ] 57 ]; 58} elseif ($message->{"text"} == 'カルーセル') { 59 // カルーセルタイプ 60 $messageData = [ 61 'type' => 'template', 62 'altText' => 'カルーセル', 63 'template' => [ 64 'type' => 'carousel', 65 'columns' => [ 66 [ 67 'title' => 'カルーセル1', 68 'text' => 'カルーセル1です', 69 'actions' => [ 70 [ 71 'type' => 'postback', 72 'label' => 'webhookにpost送信', 73 'data' => 'value' 74 ], 75 [ 76 'type' => 'uri', 77 'label' => '美容の口コミ広場を見る', 78 'uri' => 'http://clinic.e-kuchikomi.info/' 79 ] 80 ] 81 ], 82 [ 83 'title' => 'カルーセル2', 84 'text' => 'カルーセル2です', 85 'actions' => [ 86 [ 87 'type' => 'postback', 88 'label' => 'webhookにpost送信', 89 'data' => 'value' 90 ], 91 [ 92 'type' => 'uri', 93 'label' => '女美会を見る', 94 'uri' => 'https://jobikai.com/' 95 ] 96 ] 97 ], 98 ] 99 ] 100 ]; 101} else { 102 // それ以外は送られてきたテキストをオウム返し 103 $messageData = [ 104 'type' => 'text', 105 'text' => $message->{"text"} 106 ]; 107} 108 109$response = [ 110 'replyToken' => $replyToken, 111 'messages' => [$messageData] 112]; 113error_log(json_encode($response)); 114 115$ch = curl_init('https://api.line.me/v2/bot/message/reply'); 116curl_setopt($ch, CURLOPT_POST, true); 117curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); 118curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 119curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($response)); 120curl_setopt($ch, CURLOPT_HTTPHEADER, array( 121 'Content-Type: application/json; charser=UTF-8', 122 'Authorization: Bearer ' . $accessToken 123)); 124$result = curl_exec($ch); 125error_log($result); 126curl_close($ch);

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/03/14 10:34

とりあえず、サーバーの開発言語がなんであれポストの内容を入れ換えないといけないことはありません。
CHERRY

2018/03/14 10:51

それより、アクセストークンが書かれていることが気になるのですが、実際のアクセストークンではないですよね?
bassbone

2018/03/14 11:17

アクセストークンが本物でないことを祈ります。。。
退会済みユーザー

退会済みユーザー

2018/03/14 11:39

LINE messaging API 側で削除をすすめるよ(認証とおったし)
退会済みユーザー

退会済みユーザー

2018/03/15 02:20

変更履歴があるから削除してもみえるので上記対応は必須よ
yayoi_answer

2018/03/15 04:06

皆さん教えてくれてありがとうございます; LINE Developerの方でアクセストークンを再発行したので大丈夫だと思われます。
guest

回答1

0

ベストアンサー

違う言語に処理を渡したいのであれば、Pythonの処理をサーバ内でAPI化し、PHPからhttpリクエストとして呼び出すかたちではないでしょうか。

投稿2018/03/14 11:16

bassbone

総合スコア767

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問