ruby Firebaseで指定ユーザーID群に一気に1,000件ずつプッシュ通知送る处理,简単('·‿·`)亚马逊SNSよりかなり扱いやすい感('·‿&

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby Firebaseで指定ユーザーID群に一気に1,000件ずつプッシュ通知送る处理,简単('·‿·`)亚马逊SNSよりかなり扱いやすい感('·‿&相关的知识,希望对你有一定的参考价值。

def publish(user_ids:, title:, body:, click_action:, badge: 1, sound: 'original1.caf', priority: 'high')
  registration_ids = Device.where(user: user_ids).pluck(:fcm_token)
  options = { notification: {
    badge: badge,
    title: title,
    body: body,
    sound: sound,
    click_action: click_action,
    priority: priority
  } }
  registration_ids.each_slice(1000) do |sliced_tokens|
    response = fcm.send(sliced_tokens, options)
    results = JSON.parse(response[:body])['results']
    errors = sliced_tokens.zip(results)
             .map { |token, result| { token: token, error: result['error'] } }
             .select { |e| e[:error].present? }
    next if errors.empty?
    Rails.logger.warn("Failed to publish. Errors:\n#{errors}")
    # See: https://developers.google.com/cloud-messaging/http-server-ref
    errors_to_delete = errors.select { |e| %w(MissingRegistration InvalidRegistration UnregisteredDevice).include?(e[:error]) }
    unless errors_to_delete.empty?
      Device.where(fcm_token: errors_to_delete.pluck(:token)).delete_all
      Rails.logger.warn("Device deleted:\n#{errors_to_delete}")
    end
  end
end

以上是关于ruby Firebaseで指定ユーザーID群に一気に1,000件ずつプッシュ通知送る处理,简単('·‿·`)亚马逊SNSよりかなり扱いやすい感('·‿&的主要内容,如果未能解决你的问题,请参考以下文章

ruby ユーザー毎のアクセス履歴记录

CentOS7 + Apache2.4 + MySQL5.7 + PHP7

javascript ユーザーエージェント判别

php ユーザー认证:

markdown AWS IAMユーザーの设定

ruby Code Schoolのユーザ情报をリクエストしてJSON形式で取得