{"id":24557452,"url":"https://github.com/antoinelyset/bmo","last_synced_at":"2025-04-18T20:30:10.118Z","repository":{"id":12400608,"uuid":"15053748","full_name":"antoinelyset/bmo","owner":"antoinelyset","description":"Push notifications to iOS and Android devices, it handles TCP \u0026 HTTP Proxies.","archived":false,"fork":false,"pushed_at":"2016-07-18T14:30:12.000Z","size":168,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-04-24T19:11:57.070Z","etag":null,"topics":["android","apns","gcm","ios","proxy","push","ruby","stunnel"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/antoinelyset.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-12-09T17:16:16.000Z","updated_at":"2016-03-08T13:29:15.000Z","dependencies_parsed_at":"2022-09-10T17:50:42.726Z","dependency_job_id":null,"html_url":"https://github.com/antoinelyset/bmo","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antoinelyset%2Fbmo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antoinelyset%2Fbmo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antoinelyset%2Fbmo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antoinelyset%2Fbmo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/antoinelyset","download_url":"https://codeload.github.com/antoinelyset/bmo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249543296,"owners_count":21288703,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","apns","gcm","ios","proxy","push","ruby","stunnel"],"created_at":"2025-01-23T05:16:52.251Z","updated_at":"2025-04-18T20:30:10.100Z","avatar_url":"https://github.com/antoinelyset.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://raw.github.com/antoinelyset/bmo/master/bmo.png\"\n     alt=\"BMO\"\n     align=\"right\"\n     width=\"150px\"/\u003e\n\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\n# BMO (Beemo)\n\nBMO is a gem to Push Notifications to iOS (via APNS) and Android (via GCM). It handles TCP \u0026 HTTP Proxies.\n\n| Project                 |  BMO                                                                                                                          |\n|------------------------ | ----------------------------------------------------------------------------------------------------------------------------- |\n| Gem Name                |  bmo                                                                                                                          |\n| License                 |  [MIT](https://github.com/antoinelyset/bmo/blob/master/LICENSE)                                                               |\n| Version                 |  [![Gem Version](https://badge.fury.io/rb/bmo.png)](http://badge.fury.io/rb/bmo)                                              |\n| Dependency Status       |  [![Dependency Status](https://gemnasium.com/antoinelyset/bmo.png)](https://gemnasium.com/antoinelyset/bmo)                   |\n| Continuous Integration  |  [![Build Status](https://secure.travis-ci.org/antoinelyset/bmo.png?branch=master)](https://travis-ci.org/antoinelyset/bmo)   |\n| Quality Metric          |  [![Code Climate](https://codeclimate.com/github/antoinelyset/bmo.png)](https://codeclimate.com/github/antoinelyset/bmo)  |\n| Test Coverage           |  [![Coverage Status](https://coveralls.io/repos/antoinelyset/bmo/badge.png)](https://coveralls.io/r/antoinelyset/bmo)         |\n| Homepage                |  [BMO](https://github.com/antoinelyset/bmo)                                                                                   |\n| Documentation           |  [Rdoc](http://rdoc.info/github/antoinelyset/bmo/frames)                                                                      |\n\n## Why another gem ?\n\nI needed to use stunnel (TCP Proxy for encrypting with SSL/TLS) and a HTTP Proxy. The existing gems couldn't.\n\n## Installation\n\n```\ngem install bmo\n```\n\nIn Gemfile :\n\n```\ngem 'bmo'\n```\n\n## APNS\n\n### Usage\n\n```ruby\ntoken = \"123456789\" # The device token given to you by Apple\ndata  = {aps: {alert: \"Hello from BMO!\"}}\nBMO.send_ios_notification(token, data)\n```\n\nThe aps Hash content's is described here :\n\n[https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html](https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html)\n\n### Configuration\n\nDefault Params :\n\n```ruby\nBMO.configuration do |config|\n  config.apns.gateway_host  = 'gateway.push.apple.com'\n  config.apns.gateway_port  = 2195\n  config.apns.feedback_host = 'feedback.push.apple.com'\n  config.apns.feedback_port = 2196\n  config.apns.cert_path     = nil\n  config.apns.cert_pass     = nil\nend\n```\n\nIf you set a cert_path option it will use a SSL encapsulation otherwise it will use Pure TCP.\nThis option is particularly useful if you use a stunnel.\n\n## GCM\n\n### Usage\n\n```ruby\ntoken = \"123456789\" # The device token given to you by Apple\ndata  = {message: \"Hello from BMO!\"}\nBMO.send_android_notification(token, data)\n```\n\nThe data content's is described here :\n\n[http://developer.android.com/google/gcm/server.html](http://developer.android.com/google/gcm/server.html)\n\n### Configuration\n\nDefault Params :\n\n```ruby\nBMO.configuration do |config|\n  config.gcm.gateway_url  = 'https://android.googleapis.com/gcm/send'\n  config.gcm.api_key      = nil\nend\n```\n\nYou should set the api_key. It uses Faraday internally, so just set your regular http_proxy environment variable if need to configure a proxy.\n\n## License\n\nBMO is released under the [MIT\nLicense](http://www.opensource.org/licenses/MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantoinelyset%2Fbmo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantoinelyset%2Fbmo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantoinelyset%2Fbmo/lists"}