🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Q&A

解決済

2回答

2069閲覧

googleappsscriptでtwitterのtrend情報をうまくjsonから抜けない

you88

総合スコア147

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

0グッド

0クリップ

投稿2019/09/14 02:07

twitterのtrend情報を引っ張りたいのですがundefinedとログで出てしまいます。

使うapi
https://developer.twitter.com/en/docs/trends/trends-for-location/api-reference/get-trends-place

javascript

1function gettrend() { 2 var sheet = SpreadsheetApp.getActiveSheet(); 3 var service = twitter.getService(); 4 var response = service.fetch('https://api.twitter.com/1.1/trends/place.json?id=1'); 5 json = JSON.parse(response) 6 sheet.getRange("C2").setValue(json.name); 7 Logger.log("テスト"); 8 Logger.log(json.name); 9 return response 10}

トレンドのnameを引っ張りたいのですがjson.nameだとundefinedになります。またjson["name"]でもだめでした。指定の仕方がまずいんだと思うんですが。。。

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

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

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

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

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

guest

回答2

0

まず自身の取得した json を確認してください。

GAS は生データを確認するには向いていないプラットフォームなのでローカル環境で適当に取得してみることをオススメします。

json 文字列をオブジェクトに変更してしまえば、ローカルでも GAS でもやることは同じなので、GAS へのフィードバックは簡単かと。

投稿2019/09/14 05:34

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

you88

2019/09/14 06:03

ありがとうございます!
guest

0

ベストアンサー

trendは複数あるので

js

1trends[0].name

とすれば欲しい値がもらえると思います

数字を変えると他のトレンドが取得できます

投稿2019/09/14 02:18

mouse_484

総合スコア759

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

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

mouse_484

2019/09/14 02:44 編集

json[0].trends[0].name これでどうでしょうか
you88

2019/09/14 04:36

ありがとうございます!取得できました。 ちょっと違う質問になってしまうんですが上記で取得した場合、1個取得できたんですがnameを配列で全部とりたい場合ってどういう記述をしたらいいでしょうか?
mouse_484

2019/09/14 04:38

json[0].trends.forEach(trend => trend.name) でいけると思います
you88

2019/09/14 04:57

不勉強ですみません、trend => trend.nameここの部分ってどういう処理になるんでしょうか?
mouse_484

2019/09/14 04:59

trendにはtrends[数字]が入っています なのでtrend.name は trends[数字].nameと同じ意味です json[0].trends.forEach(trend => console.log(trend.name)); とするとわかりやすいかもしれません
you88

2019/09/14 06:02

ありがとうございます!いけました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問