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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

3回答

1406閲覧

プログラミングができるようにならないのですが、何が足りないのでしょうか?

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2016/08/04 07:23

# @ app.rb # ~ require "rest-client" require "json" # ~ post "/callback" do line_mes = JSON.parse(request.body.read)["result"][0] message = line_mes["content"]["text"] contents = { contentType: 1, toType: 1, text: message } post_params = { to: [line_mes["content"]["from"]], toChannel: 1383378250, eventType: 138311608800106203, content: contents } headers = { "Content-Type": "application/json; charser=UTF-8", "X-Line-ChannelID": "YOUR_CHANNEL_ID", "X-Line-ChannelSecret": "YOUR_CHANNEL_SECRET", "X-Line-Trusted-User-With-ACL": "YOUR_CHANNEL_MID" } RestClient.proxy = ENV["FIXIE_URL"]S RestClient.post("https://trialbot-api.line.me/v1/events", post_params.to_json, headers) end

LINEでBotを作成するプログラムなのですが、最初の頭の部分ですでに何をやっているのかわかりません。

post "/callback" do line_mes = JSON.parse(request.body.read)["result"][0] message = line_mes["content"]["text"] contents = { contentType: 1, toType: 1, text: message }

line_mes = JSON.parse(request.body.read)["result"][0]
は、何をどうやって調べたらわかるようになりますか?

あと、2次元配列?を使っているようですが、何故これを使っているのでしょうか?
これもこう書くと決まっていることなのでしょうか?

contents ={
contentType:1,
toType:1,
text: message
}
も、何をどうやって調べたらわかるようになりますか?

これ以後のプログラムもよくわからないです。

わからないプログラミングが出てきたら、どうやって当たりを付けて、調べていったら良いのでしょうか?

プログラミングができるようになるかなと思って、今、アルゴリズムを勉強しているのですが、何か、それ以前のような気がします。

どうやったら、この辺りで立ち止まっている自分がプログラミングできるようになりますか?

長文ですみません。回答いただけますと有り難いです。

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

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

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

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

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

guest

回答3

0

基本がさっぱりの状態で手探りであたりを付けて調べていくのははっきり言って無理です
英語を学習したことが無い人に辞書だけ渡して翻訳/英作文させるのと同じくらいには困難です。

英語であれば文法の勉強を先にした方が学習効率がいいのと同じで、
まずはその言語の入門書籍を一冊終わらせて、基本的な部分を理解するのが最も早いと思います。

投稿2016/08/04 07:37

tanat

総合スコア18713

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

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

退会済みユーザー

退会済みユーザー

2016/08/04 07:42

回答ありがとうございます。 入門書は何冊か読んで、ドットインストールさんの動画を見たり、PaizaやProgateさんで基礎はやっていると思うのですが、そこから先にステップアップできなくて困っているという感じです。 入門書やプログラミング学習サイトと、自分が作りたいものの間に凄く隔たりを感じていて、その間の埋め方がわからなくて困っています。 何が足りないでしょうか?
tanat

2016/08/04 07:52

そうですね。 いくつか可能性があると思いますが、 ・入門書の選定が悪い ・入門書への理解が足りない ・その言語とやりたいことの相性がそこまで良くない のどれかだと思います。 が、今回のケースの場合、2次元配列についてもよくわかっていない状態に見受けられますのです、 ・入門書の理解が足りない の可能性が高いと思います。 その何冊か読んだ入門書について、 全てのソースコードを理解し、同じものを何も見ずに出来る程度には理解しないと 「入門書を理解した」とは言えません。 作りたいものとの隔たりが大きくて焦ってしまうのはよくわかりますが、まずは入門書を完全に理解する程度には理解しないと、応用は難しいです。
退会済みユーザー

退会済みユーザー

2016/08/11 08:45

回答ありがとうございます。 同じものを何も見ずに出来る程度の理解はしていませんでした。 時間がかかりそうで、気が急きますが、入門書を読み直してみたいと思います。 ありがとうございました。
guest

0

まずは、LINEのBotということで、そちらのドキュメントを確認しましょう。

「どのようなデータをやり取りするか」はLINE側しだいなので、それがわからないことにはプログラムを理解する以前の問題です。

投稿2016/08/04 07:31

maisumakun

総合スコア145184

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

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

退会済みユーザー

退会済みユーザー

2016/08/04 07:35

回答ありがとうございます。 LINEのドキュメントを見ればいいのですか。 確かに、それがわからないと、プログラムを理解できないですよね。気が付きませんでした。 ちょっとドキュメントを見てみます。
guest

0

これは、LineAPIというものにリクエストをして帰ってきた結果を処理しているものです。

json

1contents = { 2 contentType: 1, 3 toType: 1, 4 text: message 5 }

この部分はAPIの仕様を見れば記載されているかとおもいます。
JSON形式のものがString型でレスが来ているので
request.body.readをJSON形式に変換しているわけです。(JSON記述にあまり詳しくないですが)
そうすると、

JSON

1{ 2 "result" => [ 3 [0] => '中身' 4}

のような形式で帰ってきてるはずです。

投稿2016/08/04 07:32

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2016/08/04 07:37

回答ありがとうございます。 LineAPI見てみます。APIが読めるようにならないと、プログラミングってできるようにならないのでしょうか?
退会済みユーザー

退会済みユーザー

2016/08/04 07:55

逆です。 プログラミングができないと、APIが読めても処理の実装はできません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問