「植物のミカタ」のGoogle Analytics(以後GAと略す)から取得したpageviewsをチャットワークに送ってみる。
今回は、前日のpageviewsと日付けを取得してみる。
※pageviewsとは、閲覧されたページの合計数として定義される指標
実際のコードを書く前に今回のコードで必要なライブラリを取得しておく。
$ go get golang.org/x/oauth2 $ go get google.golang.org/api/analytics/v3
package main import ( "bytes" "log" "net/http" "golang.org/x/oauth2" "golang.org/x/oauth2/google" analytics "google.golang.org/api/analytics/v3" ) const PROFILE_ID = "***********" //GAのプロファイルID func main() { //認証資格情報を取得するHTTPクライアントを返す client, err := google.DefaultClient( oauth2.NoContext, "https://www.googleapis.com/auth/analytics.readonly") if err != nil { log.Fatalf("Unable to read client : %v", err) } service, err := analytics.New(client) if err != nil { log.Fatalf("Unable to Access Google Analytics: %v", err) } //GAからデータを取得する result, err := service.Data.Ga.Get("ga:"+PROFILE_ID, "yesterday", "yesterday", "ga:pageviews").Dimensions("ga:date").Do() if err != nil { log.Fatalf("Unable to get data: %v", err) } var res string //日付を入れる変数 var res1 string //PVを入れる変数 for _, row := range result.Rows { res = row[0] res1 = row[1] } /** ここからチャットワークAPIのコード **/ room_id := "********" //チャットワークのルームID url := "https://api.chatwork.com/v2/rooms/" + room_id + "/messages" //bodyの後には文字列がくる param := "body=" + res + " " + "GA PV:" + res1 request, error := http.NewRequest("POST", url, bytes.NewBufferString(param)) if error != nil { log.Fatal(error) } api_key := "**********" //チャットワークで取得したトークン request.Header.Add("X-ChatWorkToken", api_key) request.Header.Add("Content-Type", "application/x-www-form-urlencoded") response, error := http.DefaultClient.Do(request) response.Body.Close() if error != nil { log.Fatal(error) } //fmt.Println(response) }
const PROFILE_ID = "*********"は、GAで登録したサイト毎に自動生成される番号のこと。
下の図の赤い部分に実際表示されている番号。
Data.Ga.Getの後は、Metrics、Dimentionの順番で取得したいデータを定義する。
ここでMetricsはga:"+PROFILE_ID, "yesterday", "yesterday", "ga:pageviews"までで、〇〇から〇〇までのの△の情報を取得するという意味になる。
ここでは、"yesterday"から"yesterday"までのpageviewsを取得するという意味になる。
Dimentionは、さらに詳しく指定したい時に指定する。ここでは、日付ga:dateを入れた。
後は、チャットワークへの自動送信なので、以前の過去記事を参考にした。
実行すると下記のようにチャットワークに投稿された。
※実行時はGoogle API Consoleで取得した認証情報が記載されたJSONファイルの読み込みが必要です。読み込み方法は下記のページに記載しています。
https://github.com/ryoko-saito/ga2cw