LINE APIについて Name:シオン Date:2017/02/03(Fri) 10:51 No.4566 | |
|
| | 初めまして。シオンと申します。 仕事でLINE APIからメッセージの値を取得したいという依頼が降ってきておりまして、こちらを見つけました。 言語はPHPを使用しております。 2016年10月1日の記事にとても参考になる記事を拝見致しました。 ありがとうございます。 ssl認証が通ったサーバーがあるため、webhookまでは通過したのですが、mさんの記事の実装部分の「メッセージを受け取って、メッセージを返すだけのコード」の部分で500エラーになってしまい、悪戦苦闘しております(´・ω・`) PHPのバージョンのせいなのでしょうか・・・ アクセストークンの指定もしているのですが、どうもコメントアウトに記載のある「返信データ作成」の箇所で使用されてる[]←中括弧が原因なのかなと思っていて、その箇所を抜いてもエラー、もしくは値を特に取得してこない…といった状況なのですが、どのようにしたらよろしいでしょうか。 どのようにしたらよろしいでしょうかなんて急に言われても、こちらの開発環境や状況、コードもわからないので難しいと思いますが、なにか助言を頂けると嬉しいです。 急にすみませんでした(´・ω・`) 失礼致します。
|
| Re: LINE APIについて m - 2017/02/05(Sun) 22:14 No.4567 | |
|
|
| | 初めまして! mと申します。
さすがに500エラーだけですとなんとも……。 中括弧についてはブログでも触れている通り、配列なので必要です。 恐らく "messages" => [&response_format_text] を気にしているかと思いますが、メッセージも5件まで遅れる形ということで1つでも配列形式で設定する必要があります。 PHPのバージョンが関係するコード…でもないかな、とは思っています。 私の経験上、静的テストを通していないコードで500errorが続く場合は、単純に後ろの";"がないとか配列の","を最後の行にも書いているとか…そういった単純な場所が多かったりするかと思います。 近場にPHPではなくてもプログラムができる社内の方がいらっしゃったら一緒にレビューするのが早そうです。
恐らくお話ですとエラーを拾っていないかと思いますので、以下の「Error response」をひとまず表示させてみる、というのが手かと思います。(サーバーのログでもよいですが、こちらの方が簡単に組めそうかと考えています) https://devdocs.line.me/ja/#common-specifications 最後の送信まで全部実装せず、ワンステップずつ(まずは受信が成功しているか、続いてLINEに飛ばせるか…など)確認していけば光は見えてくるかと思います…!
きっと突然のお仕事依頼で大変なことになっているかと思いますが、がんばってください!
|
| Re: LINE APIについて m - 2017/02/05(Sun) 22:16 No.4568 | |
|
|
| | ↑誤記でした(&と書いてしまいました……。$です) "messages" => [$response_format_text] 中括弧必須です。
|
| Re: LINE APIについて m - 2017/02/05(Sun) 22:55 No.4569 | |
|
|
| | ttp://milk0824.hatenadiary.jp/entry/2016/10/01/211555 こちらの記事の下の方に実際のbotと、githubにコードを挙げてみました。 ご参考になりましたら幸いです!
|
| Re: LINE APIについて シオン - 2017/02/08(Wed) 14:33 No.4570 | |
|
|
| | こんにちは! お返事ありがとうございます。 少し進展がありましたので、ご報告に…
記述では
ob_start(); $raw = file_get_contents('php://input'); var_dump(json_decode($raw,1)); $raw = ob_get_clean(); file_put_contents('log.json', $raw, FILE_APPEND);
の様に書くと、jsonファイルが生成され、配列で情報を取得できました。 ですが、なぜかm様のコードで、
$json_string = file_get_contents('php://input'); $jsonObj = json_decode($json_string);
と記載して、ダンプしてみても、nullになってしまいます。 ならばと思い、そのあとに"file_put_contents"で、テキストファイルを作成したら情報が見れるかと思ったのですが、中身が何も入ってないテキストファイルが生成されるだけでした(´;ω;`)
一つずつダンプでどこにエラーがあるのか調べたのですが、なぜかやはり[]←中括弧のとこで止まってるようでした…(なんでなんだろう…) "$response_format_text = ["←この記述でなぜかsyntaxエラーが発生してて…
もう少し奮闘してみようと思ってます♪
説明が下手ですみません(´・ω・`)
|
| Re: LINE APIについて シオン - 2017/02/08(Wed) 15:50 No.4571 | |
|
|
| | すみません! 再度ご報告いたします! できました!!!!!!! 原因も多分わかりました! 配列の定義をする際、多分会社の本番環境のPHPが5.4以下のため、配列の短縮構文ができないことが原因でした。 なので、中括弧部分を全て"array()"にして入れた結果ちゃんと動きました〜〜〜o(TヘTo)
ありがとうございます。 というか、そもそも環境がわかっていない時点でまだまだだなって思いました… ご迷惑をおかけしてしまい申し訳ございません(´・ω・`) まだまだやることが沢山あるので、お力添えを頂けると嬉しいです。
できて、ちょっと楽しくなってきましたww 本当にありがとうございます。
|
| Re: LINE APIについて シオン - 2017/02/08(Wed) 17:33 No.4572 | |
|
|
| | 度々申し訳ございません。 一つ別件でお聞きしたいのですが、ユーザーの情報(メッセージ情報や、reply token、timestamp等)は取得できますが、こちら側の情報を取得することは可能でしょうか? 会社で、botの作成ではなく、自分のアカウント情報を取得して、自分で送ったメッセージの情報を取得して欲しいと言われたのですが、果たしてそのようなことは可能なのでしょうか…と思っております。
調べてもそのようなことはでてこないので、多分無理だと思ってはいるのですが… もし分かればでいいので、ご教示いただけると助かります。
|
| Re: LINE APIについて m - 2017/02/08(Wed) 22:23 No.4573 | |
|
|
| | おおおお!! できたのですね! おめでとうございます!! 配列でしたか……私がバージョンは違いそう…と言ってしまったせいで余計に混乱させてしまったのですね>< お時間をかけさせてしまって本当にごめんなさい……。 けれど、無事に動いてよかったです! 私も嬉しいですw
メッセージ情報取得のお話は、自分のメッセージをロギングしたい……といったイメージでしょうか。 例えば私がシオンさんとLINEするとして、私が私自身のメッセージ履歴を取得したい、といったような。 仮にそうだとしたら、使い方次第で悪いこともできそうなのでなさそうな気もします。 リファレンスを見てみましたが、それらしい情報は私も見つけられませんでした……。 一番近くて以下のサムネイル、名前の取得APIくらいでした。 https://devdocs.line.me/ja/#getting-user-profiles
お力になれずごめんなさい! お仕事を色々と振られてとても大変かと思いますが、あまりご無理はなさらないよう、がんばってくださいね!(^-^)
|
| Re: LINE APIについて シオン - 2017/02/09(Thu) 11:06 No.4574 | |
|
|
| | m様
array()の短縮構文など知らなかったので、今回の件でとても勉強になりました。 m様のサイトのおかげで色々勉強になったので謝らないでください!! むしろこちらこそ色々とご迷惑をおかけしてしまい申し訳ございません…
イメージ通りでございます! ただ、確かに悪質なことができてしまいそうですね… サムネと名前の取得はできるといった形で会社に報告してみようかなと思います!
ホントに色々と助けていただいてありがとうございました(´・ω・`) またなにかございましたらお力をお貸し頂けると嬉しいです♪
|
|