rails RailsでFirebaseのダイナミックリンクを生成する

本稿について

本稿はサイト運営者が学んだことなどを記したメモの内容です。
全てが正確な情報とは限りません。ご注意ください。また修正するべき点は適時修正していきます
RESTでダイナミックリンクを作成した

HTTP通信にはFaradayを利用した
ユーザーへのリンクを動的に生成した
require 'net/https'
require 'uri'
require 'json'

class Firebase
  def self.create_share_url(user)
    params = {
      dynamicLinkInfo: {
        domainUriPrefix: ENV['DOMAIN_URL_PREFIX'],
        link: "https://hogehoge.jp/#{user.id}",
        iosInfo: {
          iosBundleId: ENV['IOS_BUNNDLE_ID'],
        },
        socialMetaTagInfo: {
          socialTitle: user.name,
          socialDescription: user.describe,
          socialImageLink: user.image_url,
        }
      },
      suffix: {
        option: "SHORT"
      }
    }


  connection = Faraday.new(url: "https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=#{ENV['FIREBASE_API_KEY']}")
    response = connection.post do |req|
      req.headers['Content-Type'] = 'application/json'
      req.body = params.to_json
    end

    JSON.parse(response.body)["shortLink"]
  end
end

呼び出し
Firebase.create_share_url(user)



longDynamicLinkを使う場合

    query = URI.encode_www_form(
      isi: ENV['IOS_APP_STORE_ID'],
      ibi: ENV['IOS_BUNNDLE_ID'],
      efr: 1,
      ofl: 'https://hogehoge.net/',
      link: "https://hogehoge.jp/#{user.id}",
      si:  ENV['SNS_META_IMAGE'],
      sd:  user.describe,
      st:  user.name
    )
    params = {
      longDynamicLink: "#{ENV['DOMAIN_URL_PREFIX']}/?#{query}",
    }


    @connection = Faraday.new(url: "https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=#{ENV['FIREBASE_API_KEY']}")
    response = @connection.post do |req|
      req.headers['Content-Type'] = 'application/json'
      req.body = params.to_json
    end


検証

作成されたリンクを検証するには作成されたURLに ?d=1 をつけると確認できる
https://link.xxxxxx.net/QtUNSbptxuD7hMSk7?d=1



RESTのFIrebase ダイナミックリンクの生成のパラメータはこちらを参照


デバック方法は生成されたリンクURLに “d=1"をつけることで確認できる


[参考]
Back