トップ 最新

かってきままな日々

2021-01-01 (Fr) [長年日記]

_ あけまして

おめでとうございます。今年もきままに書いていきます。

Osaka Point に11月乗車分のポイントが付いた。17p。

https://osaka-metro-pm.com/2020/09/01/%E3%80%90%E4%BA%8B%E5%89%8D%E7%99%BB%E9%8C%B2%E9%96%8B%E5%A7%8B%E3%80%91%E5%A4%A7%E9%98%AA%E3%83%A1%E3%83%88%E3%83%AD%E3%81%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9/#toc5

LiTE は 0.5% なのね。¥3,400 程乗ったのだろう。 1年で 204p くらい貯まる感じ?

LiTE にしなければ 1% だけど、PiTaPa としてでなくクレジットカードとしての 年会費が ¥204 よりもっと高いので、LiTE にしておいて正解だったのだろう。

1年で乗車1回分が無料になるかならないか、くらいなんだな… そう考えると、キャンペーンでもらった 500p ってめっちゃ大盤振る舞いだな。

_ Ruby で FCM

https://github.com/googleapis/google-api-ruby-client

↑この中に全部あるみたい。

gem install google-api-client

で、以下、ruby で、

まずは require。

require 'google/apis/fcm_v1'

インスタンスを作る。

Fcm = Google::Apis::FcmV1
fcm = Fcm::FirebaseCloudMessagingService.new

一旦 Fcm に代入してるけど、する必要はなさそう。

OAuth 2.0 で認証する。

SCOPE = 'https://www.googleapis.com/auth/firebase.messaging'

fcm.authorization = Google::Auth::ServiceAccountCredentials.make_creds(
  json_key_io: File.open('JSONファイル名'),
  scope: SCOPE)

fcm.authorization.fetch_access_token!

Firebase console から設定の「サービスアカウント」で、 「新しい秘密鍵の生成」をクリックすると、 JSON がダウンロードできるので、それを保存しておき、上記に指定。

メッセージを送信する。

msg = ::Google::Apis::FcmV1::SendMessageRequest.new({
  message: {
    android: {
      notification: {
        title: 'テスト',
        body: 'テストメッセージ7',
      },
    },
    token: 'デバイスのトークン',
  },
})

fcm.send_message('projects/プロジェクトの番号', msg)

全体を message:{} で囲む。

ドキュメントには「プロジェクトID」と書いてあるが、 ID を指定しても通知されず、エラーにもならない。 プロジェクト番号を指定すると通知できた。

この2点に悩みまくって2時間以上かかった。

なにがやりたかったか、というと、プライベート通知になってるのを やめたかっただけなんだけど、やめようと思うと新しい JSON の構造 を使う HTTP v1 にしないといけなかったので、必死に移行作業を していた、という。ここまでできれば、あとはもう少しだろう。