EMC2NARY

2021年11月


tweetlog at 2021/11/21 to 2021/11/28

メルマガ配信解除の舞をしてるんだけどYahoo系列サービス、サービスごとに配信解除が別で、かつセッション情報で配信停止サービスを分けているのでURLがすべて共通(なので停止作業の自動化がしづらい)なうえに、すべてsms認証が必要、配信解除のチェックボックスが押しづらいと大変悪意を感じる November 22, 2021 at 12:07PM 中国脱出して現在ウズベキスタン November 23, 2021 at 06:49PM またロリポップを騙る不審なメールきた November 24, 2021 at 12:13AM November 24, 2021 at 12:48AM microCMSのAPIコール数制限フリーによって、これからサービス作るときにはユーザーデータをそこに管理するって方法も考えられるようになったなあ November 24, 2021 at 12:50AM 軽減税率本当やめてほしいわ、あとからイートインで食べよって選択肢が購入後なくなるんじゃ November 24, 2021 at 09:36AM chrome最新アップデートのこれヤバいな。noteみたいに独自実装しなくていいやん November 24, 2021 at 12:59PM すげえ November 24, 2021 at 01:04PM DOMで色つけてるわけじゃないみたい。一体どうやって色を付けてるんだろう November 24, 2021 at 01:13PM URLに #:~:text= を追加してテキストを入れて上げると最初のテキストをハイライトするようだ November 24, 2021 at 01:15PM こんなふうに選択すると重複テキストでも前後文で判断してくれる。-, ,- が区切り文字っぽい。識別用の前後文はどちらも3文字ないと判定してくれない #:~:text=生粋の-,ピクミンファン,-である November 24, 2021 at 01:20PM RT @kagakutetsugaku: これすごい好き。 November 24, 2021 at 01:41PM 息子の風呂を出たときの体温と寝入るまでの時間にかなり強い相関関係がありそう November 24, 2021 at 09:07PM freeeで家事按分を設定する場合、事業利用比率には全体のうち事業で使ってる割合を入れると思うんだけど、30%利用にすると事業利用分は70%ぶん計上されて算出される謎がある。ドキュメント見てもどれも50%で設定されててドキュメントの意味をなしてない。 November 25, 2021 at 12:52AM いや正しかったわ 再計算したら行けた November 25, 2021 at 12:53AM RT @ShogoNu: 自分の子ども見てて衝撃を受けたのは、彼ら音声通話つけっぱなしにしてて、話したい時はいきなり会話スタートさせるし、そうじゃない時は繋がりっぱなしで黙ってるの。呼び出しとかの概念なくて、遠く離れてるのにまるで同じ空間にいるかのようにコミュニケーションとるの。ヤバ!置いてかれると思った November 25, 2021 at 09:07AM gitのsshとpowershellのsshが違くて鍵の共有ができておらず詰んでいた… vscode同梱gitせめてパスフレーズ聞くダイアログを用意してくれ… November 25, 2021 at 10:54AM PowershellのgitではpushできるのにVSCodeのgit(GUI)ではpushできない問題 | EMC2NARY #Github #tips #VScode November 25, 2021 at 11:57AM 主人公が変わったことを感じるな November 25, 2021 at 01:22PM 手足口病なった気がする。一週間前息子保育園でパンデミック、息子発症、月曜日妻発熱、現在妻手足に発疹、自分夕方から発熱、現在38.1度 終わった気がする November 25, 2021 at 08:54PM PlayCanvasとGoogle Docsでノベルゲーエンジン作ろうかしら November 26, 2021 at 06:57AM アセトアミノフェンでごまかされているだけだった November 26, 2021 at 02:17PM @ymgoo_ 個人事業主で開業しなよ November 26, 2021 at 04:38PM @ymgoo_ 簡単簡単 目つぶっててもできる November 26, 2021 at 05:26PM カロナール効くわあ November 26, 2021 at 05:43PM 体調を崩したのでこの土日は家でマリパやって過ごします。誰か持ってないかな November 26, 2021 at 06:04PM 損切りした マイナス24600円 November 26, 2021 at 09:15PM Black Fridayで酒を買い漁るなどした November 26, 2021 at 10:06PM 知らず知らずのうちにしっかりスキルとして身についてたんだなと実感 November 26, 2021 at 10:39PM つい最近まで自分の出身高校のWebページに自分が写ってる写真がまだ掲載されてたんだけど、今見たらようやくなくなってた November 26, 2021 at 10:51PM 懐かしくてつい買ってしまった November 27, 2021 at 07:58PM 3Dプリンター買おうかな 安いし November 27, 2021 at 10:39PM ほろよいのサブスクを酔った勢いで契約してしまった この年になると色んな場所で色々飲んだ上結局ほろよいだなってなる November 27, 2021 at 11:57PM November 27, 2021 at 11:59PM @o_ob ありがとうございます。なんか今明確に出力したいデータがあるわけじゃなく、なんか治具が欲しくなったときにすぐ作れるのいいなあってくらいなので、大丈夫です! November 28, 2021 at 01:21AM 50分ずつ拘束されて、10分の間にしかトイレ行ってはいけず、個室に入ると後ろ指をさされるという地獄の環境だった 今は好きなときに好きなだけトイレ行けるから社会は思ってたより厳しくない November 28, 2021 at 01:24AM そもそも50分間自由に発言もできずに行動が大きく制限された上で拘束されるのが無理。そんな状況で集中することを要求されるのも無理。寝てはいけないのも無理。学生すごいと思う。 November 28, 2021 at 01:26AM 寝れないからコード書いてたんだけどしゃっくりとまらなくなってやばい November 28, 2021 at 03:46AM ついに息子の手がドアノブに届いた上ドアの構造を理解した… この家に安住の地はなくなった… November 28, 2021 at 08:55AM

PowershellのgitではpushできるのにVSCodeのgit(GUI)ではpushできない問題

結論 環境 OS : Windows 10 Git client : Visual Studio Code Git remote:Github via ssh CUI:PowerShell ssh.exe:openssh from chocolatey 背景 2020年のアップデートからhttpsでのGithubへの接続が制限されたので、ssh接続に切り替えてローカルにリポジトリをクローンして運用していた ssh-addで鍵の登録まで終えた 事象 git clone git@github.com:xxxx としてクローンすると、ssh-addで登録したはずなのにパスフレーズを聞かれる(パスが通ると問題なくクローンされる) ssh git@github.com -T を実行すると問題なくGithubと接続できている クローン後のディレクトリをVSCodeのGUIからpushを行ってもPermission deniedになる(パスフレーズも聞かれない) VScode上のターミナルからgit push origin mainを実行するとパスフレーズが聞かれた後に正しくプッシュされる .ssh/configをいくら書き換えても動かない 原因 sshコマンドとgitコマンド内部で呼ばれるsshコマンドが実行ファイルが違うためssh-addされた鍵が共有されない VSCodeのGit Client GUIはパスフレーズを聞く機構がない(鍵が保存されていないと必ずPermission deniedになる) 解決策 gitコマンド内部で呼ぶsshコマンドを、ssh単体で読んだ際の実行ファイルに明示的にパスを当てる C:\Users\<username>\.gitconfigに以下を記述。 [core] sshCommand = C:/Windows/System32/OpenSSH/ssh.exe これでgit cloneでパスフレーズは聞かれず、GUIからのプッシュも問題なく動いた 参考

tweetlog at 2021/11/14 to 2021/11/21

運営してる社会人サークル、健全運営すぎてやばい November 14, 2021 at 11:46PM これ、非常にあるあるだと思ってて、自分は/id/_useridみたいにしてる。バグの温床になるしバリデーション仕切るのも面倒なので。WantedlyもそうしてるしPlayCanvasも/user/_idに変わっていた / Qiitaのユーザー名に3桁数字を使うときの注意 #Qiita November 15, 2021 at 07:13AM 的な November 15, 2021 at 07:14AM でも一度/_idで出しちゃうと、以降がめちゃくちゃかったるいよね、システムのルーティングなのかユーザーのルーティングなのか判断してリダイレクトかける November 15, 2021 at 07:15AM RT @YahooNewsTopics: 【新婚夫婦の6割が式挙げず 調査】 明治安田生命保険は15日、2019年10月以降に結婚した新婚夫婦の58.8%が結婚式を挙げていないとの調査結果を発表した。新婚ではない夫婦(20.4%)の3倍近い。新型コロナウイルス禍が熱々のカップルに与えた影響を物語った。 November 15, 2021 at 12:36PM ふむう、上がると見越して買っていたブライダル関連銘柄売っといたほうがいいかな… November 15, 2021 at 12:37PM 確かにこうしてみてみるとTwitterTLの広告めちゃめちゃ増えたな… ケンタッキー食べたい November 15, 2021 at 06:27PM パリまでピクミンにおつかい行ってもらった。42日… November 15, 2021 at 08:48PM @Jyo229 え!二日前ディズニー行ってたの??? 土曜日? November 15, 2021 at 10:16PM @Jyo229 ウケる、金曜日フランス人が言ってたらしいよ November 15, 2021 at 10:45PM @o_ob なんか記事で見つけたんですが、当日のライフログ記入時に位置情報付きの写真を投稿するか、位置情報手入力で、一日一回だけ好きな位置情報のおつかいを発生させることができるようです。。。手入力も行けるので訪問していないところでもお使いを発生させられる模様。ガバガバでした。 November 15, 2021 at 10:55PM 只今白ピクミン甲府近辺を通行中 時速何キロなんだろ、後で計算してみよ November 15, 2021 at 11:00PM 実験してみた 165m 白二匹 1分1秒 秒速2.7m 分速162.3m 時速9.73km パリまで9705.291km / 9.73 / 24 = 41.56日 だから計算合ってるな、ピクミンは休まず等速直線運動をしているようだ。 November 15, 2021 at 11:09PM でも意外だ、時速9.73kmを分/kmに変換すると6分10秒くらい。ジョギングではないけど、ランニングでは結構ゆっくり目のペース。昔出ようと思ったハーフマラソンの足切りが7分/km だったので、結構ゆったりめなのがわかる。それでもそのペースで42日かけてフランスまで行く白ピクミンは異常だけど November 15, 2021 at 11:14PM 三鷹市がZoom・Slackと「デジタルコミュニケーション推進に関する協定」を締結 - INTERNET Watch November 16, 2021 at 12:04AM RT @addyosmani: Native <img> lazy-loading is now enabled in Safari Tech Preview! 😍 Use <img loading=lazy> to natively lazy-load images: - looking forward to this coming to Safari stable. November 16, 2021 at 09:10AM おおーlazy-loadがWeb標準になったのか November 16, 2021 at 09:11AM 新しいPlayCanvasのMonaco製コードエディターいい感じ。コード補完バチバチに効くし、VSCode慣れしてる人にはCtrl + Shift + Pでコマンドパレット出して操作できるし、PlayCanvasのコードがすごく書きやすくなってる November 16, 2021 at 10:01AM そろそろ隠岐の島にピクミンが上陸する November 16, 2021 at 11:25AM @o_ob 白が一番足速いんで! November 16, 2021 at 11:39AM すご PlayCanvas、UnityからFBX exporterで移植したときに、lightまで移植してくれるようになってる。対象Game Object内にlightがあったらtemplate化した際にそのまま入ってる仕組み。見た感じパラメータも引き継がれてる。やるわあ November 16, 2021 at 11:46PM notion使いやすいなー もうザ・CMSみたいなの使うのやめたい November 17, 2021 at 01:19AM ゆれ November 17, 2021 at 02:55AM PlayCanvas Editor API, エンティティ数が多すぎるとeditorオブジェクトの呼び出しだけでブラウザクラッシュするな。。。 November 17, 2021 at 10:10AM Editor APIクラッシュするから、ちまちま手作業でやってたんだけど人間がやる仕事じゃなさすぎて精神病んだ… 600/7000くらいでリタイアした… November 17, 2021 at 10:47AM 白ピクミン中国に上陸 November 17, 2021 at 03:27PM @Jyo229 November 17, 2021 at 05:43PM @sutobu000 おつかれ…おつかれ…… November 17, 2021 at 08:05PM RT @frau_tw: 【合格できないことは必ずしも #中学受験 の「失敗」を意味しない】輝かしい中学受験の一面を取材しながら、#教育虐待 の現場など #受験の闇 とも向き合ってきたおおたとしまささん。新著『#なぜ中学受験するのか?』から、本当の失敗について抜粋掲載する。@toshimasaota November 17, 2021 at 08:21PM 中学受験→第一志望中等教育学校不合格、地域の公立へ 高校受験→第一志望都立高校不合格、滑り止めの私立へ 大学受験→第一志望四工大不合格、センター滑り止め工業大学へ 就活→第一志望教授推薦企業不合格、ハロワで見つけた現職へ 不合格半生だけどおかげでメンタル強くなった気がする November 17, 2021 at 08:26PM 第一志望に行けた試しないけど人生楽しい November 17, 2021 at 08:33PM やってしまった… 深淵を覗くときまたこちらも深淵を…的な感じで息子に寝かしつけられてしまった 夜作業する予定だったのに… November 18, 2021 at 05:12AM 来年3月にワクチンブースター摂取って連絡きたんだけど、二回目で死にそうになったので3回目はかなりヤバそう November 18, 2021 at 04:22PM 白ピクミン、中国太原市のあたりを走行中 November 18, 2021 at 05:33PM なんか俺だけかもしれないけど オンラインMTGだと偉い人相手でもズカズカ発言できる気がする November 18, 2021 at 06:24PM いい子はこんな時間まで仕事しちゃいけないよ 本業+副業+個人事業をやってるおじさんとの約束だ November 18, 2021 at 11:02PM ぐおー 昨日締め切りのものを昨日見て、明日やろ、、、ってなって今日見たら(当然)締め切られていた。。。 マルチタスクよくない。。。 November 19, 2021 at 10:43AM obj2gltfはCesiumが作ってて、fbx2gltfはFeacebookが作ってるんだな November 19, 2021 at 04:30PM 聖火トーチもった November 20, 2021 at 06:01PM バドミントンしてる 今日は27人参加 November 20, 2021 at 08:28PM

ピクミンブルームのここが気に入る/気に入らない

ピクミンと私 私は生粋のピクミンファンである。小学生の頃ピクミン2を手に取り、それはそれは数多くのトラウマ楽しい経験をしてきた。ピクミンの続編をずっとずっと待ち続けて、大学生の頃ピクミン3が発売した。わたしは意気揚々と発売日に購入、プレイしたが当時の高揚感を得ることはできなかった。それでも新しいピクミン体験を受け入れ、先日発売されたピクミン3デラックスは人生初プレイの奥さんとともに初心で楽しんだ。 このように自分の人生の半分、いや70%くらいはピクミンでできている。なので自分はピクミンの続編を心待ちにしている。 ある日急にこんなニュースが飛び込んできた。 正直、嬉しくはなかった。Nianticの作る実世界連動のゲームはハマった試しがないし、ただのIPとしてピクミンを利用されている気がしてならなかったからだ。 ただこれまでピクミンとともに過ごしてきた自分として、インストールせずにはいられなかった。そして、インストールし一週間くらい遊んでこの記事を書いている。 プレイしてみて、生活習慣の改善や徒歩のモチベーションとしてはとてもよいゲームで、実際にこの一週間で50000歩ほど歩けている。こんなに身体が調子が良いのは久しぶりだ。 だが、ピクミンシリーズとしてこのゲームを見ることは、やはりどうしてもできなかった。その理由を描いていこうと思う。 ピクミンブルームのここが気に入らない ピクミンに名前をつけれる まず最初に非常に嫌悪感を持った。このゲームではピクミンに名前をつけれるのである。 ピクミンはピクミンであって名前をつける対象ではない。 本来ピクミンは隊列にいないときはオニヨンに大量に入ってるのであって、個性も存在しないため呼称はできないだろう。 なんでこんな仕様にしたのか、任天堂はいいのだろうか ピクミンとの友好度がある 次にこれも嫌悪感がある。ピクミンとの友好度が存在するのだ。 友好度が上がるとアイテムをもってきてくれたりするようになる ピクミンに友好関係を持ってはいけない。ピクミン1の主題歌、愛のうたのフレーズを見てみよう 引っこ抜かれて、あなただけについて行く今日も運ぶ、戦う、増える、そして食べられる ほったかされて、また会って、投げられて でも私たちあなたに従い尽くします <中略> 力合わせて、戦って、食べられて でも私たちあなたに従い尽くします 立ち向かって、黙って、ついてって でも私たち愛してくれとは言わないよ なんと切ない歌詞だろうか。 だが、これが、本来のピクミンとの関係なのである。 ピクミンに名前をつけたり、仲良くなったりしてしまうと 確実に情が出てしまう。私はピクミンに名前などつけたくない。 一緒に戦って、でも儚く散っていって、それでも愛してくれとは言わないよ。 これがピクミンなのである。 ピクミンの花を摘める これは言語道断である。 ピクミンの花を摘むのはフーセンドックリと相場が決まっている。それも厳密にはブレスによって花を散らす”攻撃”であるのだ。 花びらをつかって花を咲かすというコンセプトからよくわからないが、せめてそれがピクミン自身の花であってほしくなかった。 ピクミンが疲れる レベル15に差し掛かると、チャレンジという要素が登場する これは複数人で協力してピクミンを派遣し、巨大なきのこを倒すことで報酬が得られるミッションである チャレンジは一日3回限定なのだが、3回終了したあとにこんな表示がされる。 ピクミンたちは疲れたようです。また明日チャレンジに挑戦しましょう。 ... このチャレンジのデザインは、まあいい。一日何度もやられてはゲームバランスが良くないだろう。 だが、疲れた と書かれるのが非常に気に食わない。 まず、ピクミンは疲れない。仮に疲れたとしても作業の手を止めることはない。 先程の愛のうたの歌詞をもう一度見てほしい。本当にピクミンが疲れてチャレンジをしなくなるだろうか。 ピクミンが活動できなくなる瞬間はある。原生生物が活発化する夜間だ。 その時は宇宙船とともにオニヨンに入ったピクミンは大気圏外に一旦退避する。 このような習性があるのだから、そういうふうな言い回しをしてほしかった。つくづくがっかりした 果実の名前が人類が使っている呼び名になっている これまでのピクミン界は荒廃した人間界だったので、果実はあれど、その呼び名は宇宙人が名付けた名前が一般的だった。 シリソックリやデコリポッコリ、カボストニタリヨタリなど、植物学者でもあるアルフたちが名付けた名前だった。 だが今作ではももやオレンジと言った、現代の日本語の名称が使われている。 これは非常にがっかりした。 だが、ちょっとずつ腑に落ちてきたところもある。 ピクミンは引っこ抜いて最初に見た人物を親だと認識し、ついていく習性がある。 今回のユーザーはMiiである。Miiはメタバースでの自分でもあるわけで、そこでは現代と同じであれば、果物の呼び方も同じなのかもしれない。 果実のエキスをピクミンが吸う さて、果実の名称はまあ納得できそうだが、これは到底納得ができない。 ピクミンが果実のエキスを吸うのだ。 本来、ピクミンが吸うのは果実のエキスではなく大地のエキスだ。 大地のエキスはピクミンの星に住む生物の多くにとって栄養源となるものであり、非常に栄養価が高い。星の地中全体にわたって存在するようだが、もっぱら黄色いゼリー状のものを指す。(※ピクミンWikiより引用) 果実のエキスを必要としているのは、アルフたち宇宙人や、我々人間である。ピクミンは、宇宙人に従って果実をとり、それを栄養源として宇宙人がPNF-404で生きていけるのである。 このように人間とピクミンの関係は、協力関係ではなく、従属関係なのだ。 今作はピクミンに指示を出し、ピクミンが遠くへ果実を取りに行き、回収後エキスの形になって、人間がピクミンにエキスを与え、エキスを吸ったピクミンには花が咲き、それで得られた花びらを使って人間は周囲に花を咲かせることができる。 これであればピクミンは自分で果実を回収してエキスを吸えばいいし、人間は野生のピクミンから花びらをむしればいい。 エキスの形にする工程に人間が必要なのだろうか? 本来ピクミンは種の保存のためにオニヨンに栄養を送り続け個体を増やし続ける必要がある。これは本能的な部分だと思う。ピクミンブルームではペレットもないし原生生物もいないし、ピクミンを生産するオニヨンもない。ピクミンはうわった形でどこかから生えてくるのだ。そのあたりも謎が多い。 ピクミンブルームのここが楽しい 悪いところばかり書くのも良くないので、いいところも書きたいと思う。 歩くモチベーションになるくらいピクミンたちが魅力的 実際にピクミンブルームは楽しい。先述の通り、ピクミン作品としてみると拒否反応がでてしまうこともあるのだが、別のものと思えば、大好きなピクミンと一緒に街を歩ける。超楽しいコンテンツだ。 また、たまにピクミンがポストカードを持ってくるのだが、慣れ親しんだ地元のランドマークとピクミンがツーショットになっているのが、非常にグッと来る。かわいいし、面白い。たくさん集めたくなる。 みんなのピクミンを集結させるチャレンジは興奮する チャレンジはよくできていると思う。実際に突撃はピクミンの中でかなり爽快感のある操作なのだが、実際に大人数で同期的にそれができるのが超気持ちいい。 体力も原作と同じ表示方法で、ピクミンの攻撃方法も一緒で、原作好きとしては非常に嬉しい。 今後のアップデートできのこだけではなくチャッピーとかもでてきて食べられてほしい。 リアル時間+リアル地図をピクミンが歩いてものを運搬しているのが感動する ピクミンの楽しさの一つとして、過酷なことをやらせてそれを見る楽しさがある。 敵を倒さずに前線から物資を運搬させたり、巨大な敵に突撃させたり。 ピクミンブルームでは自分が訪れたところでアイテムを発見して、ピクミンにお使いを依頼することができる。 近場にいるときはすぐ帰ってくるのだが、当然自分自身が動くとターゲットまでの距離は遠くなるため、ピクミンの稼働時間は長くなる。 実際に東京の西側から幕張にお使いを頼んだときの画面がこれだ。 これは非常にグッと来る。40kmという、まあ普通に考えたら絶対歩かない距離を、14時間くらいかけてこのピクミンは往復して物資までもって帰ってきたのだ。 また、道中のピクミンを観察できるのだがそれはまあ過酷な旅で、幹線道路も横断するし川も入るしなんなら海の上をも超えていく。青ピクミンでもないのに。 そういう細かいことは抜きにしても、送り出したピクミンが道中荒波を乗り越えて帰ってくるさまは、非常にピクミン本来の楽しみ方と同じでとても感動する。 もっと遠い距離に行かせたら、どのくらいの時間がかかるんだろうか、、、と想像してウズウズしてくる。これのために北海道と沖縄を往復してもいいなと思える。これはピクミンブルームにしか出せない移動欲求だと思った。 以上、ピクミン愛に乗せて殴り書いたが結論ピクミンシリーズとしては認めたくないが位置ゲーとしては過去最高にハマっている自分がいる。 まあ四の五の言わずに自分が楽しいと思う方法を見つけて楽しむのが正解なのかもしれない。

ページビュー数を表示する

JAMStackでもページビュー数を取得して表示したい! ということで実装しました。 技術要素はこちら Google Analytics Reporting API v4 google-api-php-client MicroCMS patch API Google Analyticsのデータを閲覧権限で取得してきてNuxtのビルド時にごそっとpatchイベントを介してMicroCMS上で確認できるような設計にしました。 最終的にこんな感じでpv数がmicroCMSで確認できます。 あとは通常のJAMStackと同じで取得したpv数を表示する流れです。 実装: まずPHPでGoogle Analytics Reporting APIの導通をします こちらのページを参考に簡単に作れました。 そのあと、今回は記事ページのpv一覧がほしいので、このようにphpを記述しました <?php // Google API クライアントライブラリの読込み require_once __DIR__ . '/google-api-php-client/vendor/autoload.php'; // 鍵ファイルのパス $key_file_location = __DIR__ . '/service-account-credentials.json'; // ビューID $view_id = 'view_id'; // 認証処理 $client = new Google_Client(); $client->setApplicationName('sample'); $client->setAuthConfig($key_file_location); $client->setScopes([' $analytics = new Google_Service_AnalyticsReporting($client); // データを取得する期間 $dateRange = new Google_Service_AnalyticsReporting_DateRange(); $dateRange->setStartDate('2020-09-01'); $dateRange->setEndDate('today'); // 取得するメトリクスの指定 // // PV $pageviews = new Google_Service_AnalyticsReporting_Metric(); $pageviews->setExpression('ga:pageviews'); //ディメンションをpathに設定 $dimention = new \Google_Service_AnalyticsReporting_Dimension(); $dimention->setName( 'ga:pagePath' ); //部分一致"post"でページ全体をフィルタリング $filter = new \Google_Service_AnalyticsReporting_DimensionFilter(); $filter->setDimensionName( 'ga:pagePath' ); $filter->setOperator( 'PARTIAL' ); $filter->setExpressions( [ 'post' ] ); //フィルタを適用 $filters = new \Google_Service_AnalyticsReporting_DimensionFilterClause(); $filters->setFilters([$filter]); // リクエストの作成 $request = new Google_Service_AnalyticsReporting_ReportRequest(); $request->setViewId($view_id); $request->setDateRanges($dateRange); $request->setMetrics(array($pageviews)); $request->setDimensions( [ $dimention ] ); $request->setDimensionFilterClauses( $filters ); // リクエスト実行 $body = new Google_Service_AnalyticsReporting_GetReportsRequest(); $body->setReportRequests(array($request)); $reports_obj = $analytics->reports->batchGet($body); // オブジェクトを配列変数に変換 $reports_array = json_decode(json_encode($reports_obj), true); //一旦整形する $pageviewarray = $reports_array['reports'][0]['data'][rows]; $outputarray = []; //クエリパラメータ付きのパスは同一PVとして加算する for ($i = 0; $i < count($pageviewarray); $i++) { $realpath = explode("?",$pageviewarray[$i]['dimensions'][0])[0]; if(substr($realpath, -1) != '/'){ $realpath = $realpath . "/"; } if($outputarray[$realpath]['pageview'] == null){ $outputarray[$realpath]['pageview'] = intval($pageviewarray[$i]['metrics'][0]['values'][0]); }else{ $outputarray[$realpath]['pageview'] += intval($pageviewarray[$i]['metrics'][0]['values'][0]); } } //JSで扱いやすいようにフォーマット変更 $output = []; for ($l = 0; $l < count($outputarray) - 1; $l++) { if(substr(array_keys($outputarray)[$l],0,6) == "/post/"){ $obj = array('path'=>array_keys($outputarray)[$l],'id'=>rtrim(substr(array_keys($outputarray)[$l],6),'/'),'pageview'=>$outputarray[array_keys($outputarray)[$l]]['pageview']); } array_push($output,$obj); } echo json_encode($output); するといい感じにAPIができました あとはこいつをnuxt.config.jsでビルド時に記事ページにpatchします let pvobj = await axios.get("getpageview.php"); for(let pv = 0;pv<pvobj.data.length;pv++){ try { console.log("try : " + pvobj.data[pv].id); await axios.patch(' { "X-MICROCMS-API-KEY": "your_microcms_key","Content-Type":"application/json" }}) } catch (e) { console.log('Error!!') } console.log("done"); } これでmicroCMSにPV数が記録されます。 問題点: ビルドプロセスにpatch処理を入れたことで、microCMS側で設定しているGithub ActionのRepository dispatchイベントが発火され続け、Github Actionsのワークフロー一覧が大変なことになりました。 POSTイベントで自動投稿する記事があったので、API入稿もCIを走らせていましたが、今後patchを動かしていくのであればCI動いては困るので、API入稿でのCI発火は止めました。 また、このプロセス追加によってビルド時間が1分→5分くらいに伸びました そんなにリアルタイム性が求めらていないデータなので、今後Github Actionsの無料枠を逼迫するようであればPHPにそのままpatchの処理を移管してcronでも適当に週一くらいで走らせる設計に変更しようと思います。