A wrapper for the Braze REST API. Forked from https://github.com/DynamoMTL/appboy
Add this line to your application's Gemfile:
gem 'braze_ruby'
And then execute:
$ bundle
Or install it yourself as:
$ gem install braze_ruby
Configuration options may be passed when a new API object is instantiated:
BrazeRuby::API.new('<braze-rest-api-key>','<braze-rest-url',{<additionaloptions>})Alternatively, you can pass your Braze REST API key, Braze
REST URL, and any required Faraday options to the
BrazeRuby::configure method:
BrazeRuby.configuredo |config|
config.rest_api_key='<braze-rest-api-key>'config.rest_url='<braze-rest-url>'config.options={<additionaloptions>}endapi=BrazeRuby::API.new('<braze-rest-api-key>','<braze-rest-url')api.track_users(attributes: [{external_id: 123,first_name: 'John',last_name: 'Smith',gender: 'male',email: 'jsmith@example.com'}])api.track_attribute(external_id: 123,first_name: 'John', ...)api.track_users(events: [{external_id: 123,name: 'add-to-cart',time: Time.now}])api.track_event(external_id: 123,name: 'Event', ...)api.track_users(purchases: [{external_id: 123,product_id: 456,currency: 'CAD',price: 1.99,time: Time.now}])api.track_purchase(external_id: 123,product_id: 456, ...)api.track_users(purchases: purchases,events: events,attributes: attributes)messages={android_push: {alert: 'Hello Android'},apple_push: {alert: "Hello iOS"}}api.send_messages(messages: messages,external_user_ids: [123,456])api.send_messages(messages: messages,segment_id: '<segment-id>')api.schedule_messages(send_at: 1.hour.since,messages: messages,external_user_ids: [123,456])api.trigger_campaign_schedule(campaign_id: 'campaign-id',recipients: [{external_user_id: 123}]schedule: {time: Time.now.iso8601})api.delete_campaign_trigger_schedule(campaign_id: 'campaign_id',schedule_id: 'schedule_id')api.trigger_campaign_send(campaign_id: 'campaign-id',recipients: [{external_user_id: 123,trigger_properties: {first_name: 'John'}}])api.trigger_canvas_send(canvas_id: 'canvas-id',recipients: [external_user_id: 123,canvas_entry_properties: {first_name: 'John'}])api.email_status(email: 'john@example.com',status: :opted_in)api.scheduled_messages(end_time: Time.now.advance(weeks: 2).iso861)api.list_segmentsapi.export_users(external_ids: [1])api.export_users(segment_id: segment_id,callback_endpoint: 'https://example.com')Delete Braze Users with an array of external_ids
api.delete_users([1,2,3])api.subscription_user_status(external_id: [1])api.subscription_status_get(external_id: [1],subscription_group_id: 'some-uuid')api.subscription_status_set(external_id: [1],subscription_group_id: 'some-uuid',subscription_state: 'subscribed|unsubscribed')api.create_user_aliases(user_aliases: [{user_alias: {alias_name: "device123",alias_label: "my_device_identifier",}}])api.identify_users(aliases_to_identify: [{external_id: 1234,user_alias: {alias_name: "device123",alias_label: "my_device_identifier",}}])Note: you can send up to 50 rename objects per request.
api.rename_external_ids(external_id_renames: [{current_external_id: "old_external_id",new_external_id: "new_external_id",}])Note: you can send up to 50 external IDs per request.
api.remove_external_ids(external_ids: ['old_external_id'])api.email_unsubscribes(email: ['jdoe@example.com'])api.email_hard_bounces(email: ['jdoe@example.com'])api.remove_emails_from_spam(email: ['jdoe@example.com'])The BRAZE_RUBY_DEBUG environment variable will trigger full printouts of the Faraday gem's HTTP requests and responses.
cd /my/app
export BRAZE_RUBY_DEBUG=true
bundle exec rails whatever- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request