前提・実現したいこと
linebotにぐるなびapiで取得したデータを呼び出したい
発生している問題・エラーメッセージ
現在、LinemessagingAPIでぐるなびのapiを利用したbotを作成しています その中で、リンクでは呼び出すことができる情報をcurl -Xでlineに送りたいのですがうまく送ることができません 同様の記述でopen_weatherのapiからはハッシュとして情報をlineに送ることができるので、何か違いがわかる方がいれば教えていただけると幸いです
該当のソースコード
ruby
1event.message['text'].include?("ぐるなび") 2area = event.message['text'].delete("ぐるなび") 3gkey = ENV["GURU_KEY"] 4eurl = URI.encode("https://api.gnavi.co.jp/RestSearchAPI/v3/?keyid=#{gkey}&address=#{area}") 5an = "#{eurl}" 6response = `curl -X GET"#{an}"`
試したこと
curlコマンドのオプションを変えたりしてみたのですが、うまく送れません
コードの最終行のcurl -X GET"#{an}"
のダブルクウォーテーションを無くしてもダメでした
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
curl -X GET"#{an}" ですと、式展開した結果が、"curl -X GEThttps://api.gnavi.co.jp/Rest... " のように"GET"とurl文字列がくっついちゃうと思うのですが、そこはだいじょうぶなのでしょうか。
返信ありがとうございます
一応参考にさせていただいた記述がresult = `curl -X GET http://api.gnavi.co.jp/RestSearchAPI/20150630/?keyid='&'format=json'&'address=#{place}`#ここでぐるなびAPIを叩く
なのですが、記述内容は同じようになっていると考えています。
もしかするとそれも間違っているのでしょうか
response に何が入っているか質問に追記ください。
Y.H.さん
度々の返信本当にありがとうございます
event.message['text'].include?("ぐるなび")
area = event.message['text'].delete("ぐるなび")
gkey = ENV["GURU_KEY"]
eurl = URI.encode("https://api.gnavi.co.jp/RestSearchAPI/v3/?keyid=#{gkey}&address=#{area}")
response = "#{eurl}"
この記述だと、リンクの状態で問題なく調べた場所のぐるなび情報は取れている段階です
ただ、この最終行にcurl -X GET を記述するとlineに何も返信がなく、ターミナルを確認するとstatus=200で正常に処理が行われているとのことです
curlコマンドの使い方が誤っているのでしょうか?
response = `curl -X GET "#{an}"`
これを実行したときにresponseに入っている値を質問に記載ください。これがわからないと原因は誰にもわかりません。
irb(main):012:0> response = `curl -X GET "#{eurl}"`
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 44532 0 44532 0 0 105k 0 --:--:-- --:--:-- --:--:-- 105k
=> "{\n \"@attributes\": {\n \"api_version\": \"v3\"\n },\n \"total_hit_count\": 509681,\n \"hit_per_page\": 10,\n \"page_offset\": 1,\n \"rest\": [\n {\n \"@attributes\": {\n \"order\": 0\n },\n \"id\": \"n244918\",\n \"update_date\": \"2020-01-23T10:40:41+09:00\",\n \"name\": \"個室居酒屋×鉄板料理 鉄神 名駅本店\",\n \"name_kana\": \"コシツイザカヤテッパンリョウリ テッシンメイエキホンテン\",\n \"latitude\": \"35.173440\",\n \"longitude\": \"136.887323\",\n \"category\": \"個室・鉄板焼居酒屋\",\n \"url\": \"https://r.gnavi.co.jp/gy7rbhu80000/?ak=trvnHhrDj3Kz7YOQLdEddkXwLArBlknhKhRqkVLdQGM%3D\",\n \"url_mobile\": \"http://mobile.gnavi.co.jp/shop/n244918/?ak=trvnHhrDj3Kz7YOQLdEddkXwLArBlknhKhRqkVLdQGM%3D\",\n \"coupon_url\": {\n \"pc\": \"https://r.gnavi.co.jp/gy7rbhu80000/coupon/\",\n \"mobile\": \"http://mobile.gnavi.co.jp/shop/n244918/coupon\"\n },\n \"image_url\": {\n \"shop_image1\": \"https://uds.gnst.jp/rest/img/gy7rbhu80000/t_0000.jpg\",\n \"shop_image2\": \"https://uds.gnst.jp/rest/img/gy7rbhu80000/t_0001.jpg\",\n \"qrcode\": \"https://c-r.gnst.jp/tool/qr/?id=n244918&q=6\"\n },\n \"address\": \"〒450-0002 愛知県名古屋市中村区名駅3-8-13 ファーストKHビル3F\",\n \"tel\": \"050-3464-3571\",\n \"tel_sub\": \"052-589-8186\",\n
見辛くて申し訳ないのですが、rails cで確認したところ上記のような結果が出てきました
回答2件
あなたの回答
tips
プレビュー