{"id":17600185,"url":"https://github.com/maceto/slybroadcast","last_synced_at":"2025-04-30T06:48:29.466Z","repository":{"id":56896178,"uuid":"89637221","full_name":"maceto/slybroadcast","owner":"maceto","description":"A minimal Slybroadcast Ruby client implementation","archived":false,"fork":false,"pushed_at":"2017-05-12T21:41:07.000Z","size":38,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-30T06:48:08.206Z","etag":null,"topics":["client","ruby","slybroadcast"],"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/maceto.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":"2017-04-27T20:21:58.000Z","updated_at":"2017-05-12T21:53:47.000Z","dependencies_parsed_at":"2022-08-21T00:50:54.014Z","dependency_job_id":null,"html_url":"https://github.com/maceto/slybroadcast","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maceto%2Fslybroadcast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maceto%2Fslybroadcast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maceto%2Fslybroadcast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maceto%2Fslybroadcast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maceto","download_url":"https://codeload.github.com/maceto/slybroadcast/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251658197,"owners_count":21622819,"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":["client","ruby","slybroadcast"],"created_at":"2024-10-22T11:09:37.036Z","updated_at":"2025-04-30T06:48:29.442Z","avatar_url":"https://github.com/maceto.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"slybroadcast\n=========\n\nA minimal Slybroadcast Ruby client implementation. Based on Slybroadcast API Version 2.1\n\nSee slybroadcast.com for information about this product.\n\nUsage\n-----------\n\n``` ruby\n\nrequire 'slybroadcast'\nSlybroadcast::Client.credentials = { c_uid: 'example@email.com',  c_password: 'xxx'  }\n\n```\n\nor\n\n``` ruby\n\nSlybroadcast::Client.verify({ c_uid: 'user@example.com', c_password: 'secret' })\n\n```\n\n### Verify Username and Password\n\nTo verify your slybroadcast Username and Password.\n\n``` ruby\n\nSlybroadcast::Client.credentials = { c_uid: 'example@email.com',  c_password: 'xxx'  }\nresult = Slybroadcast::Client.verify\n\nresult.success?\ntrue\n\nresult.failed?\nfalse\n\n```\n\n### Send a Campaign\n\nPosibles Params\n\nParam name   | Definition    | Example\n------------ | ------------- | -----------\n*c_uid* | Your Email Address | value=\"admin@mobile-sphere.com\"\n*c_password* | Your Password | value=\"12345678\"\n*c_url* | URL for audio file if recorded elsewhere | value=\"http://www.yoursite.com/wav\"\n*c_audio* | Audio file type (WAV or Mp3) | value=\"WAV\"\n*c_record_audio* | Audio file name if recorded through the Slybroadcast Recording Center | name=\"MeetupRecording1\"\n*c_phone* | Destination phone numbers | MAX: 10,000 per submission | value=\"6173999980,6173999981\"\n*session_id* | Session/Campaign ID | value=\"9123456789\"\n*c_callerID* | Caller ID of campaign | value=\"6173999980\"\n*c_date* | Date/Time of delivery (EST) YYYY-MM-DD HH:MM:SS Must use military time format | value=\"2015-12-31 15:00:00\" value=\"now\"\n*mobile_only* | Campaign sent to mobile numbers only | value=\"1\"\n*c_endtime* | End Time for campaign (EST) HH:MM:SS | Must use military time format value=\"17:59:59\"\n*c_sys_audio_name* | Use ONLY if sending the system file name of your audio file | value=\"r18904b140407197964.wav\"\n*c_dispo_url* | URL that will receive call status post backs | value=https://www.yoursite.com/results\"\n\n\nCampaign submission with audio file previously uploaded.\n\n``` ruby\n\nresult = Slybroadcast::Client.campaign_call(\n  c_phone: \"+16173999981, +16173999982, +16173999983\",\n  c_record_audio: \"Meetup1\",\n  c_callerID: \"+16173999980\",\n  c_date: \"now\",\n  mobile_only: \"1\"\n)\n\nresult.success?\ntrue\n\nresult.session_id\n1234567788\n\n\n\nresult.failed?\nfalse\n\nresult.error\n\"Bad Audio, can't download\"\n\n```\n\nCampaign submission using a client's audio file.\n\n``` ruby\n\nresult = Slybroadcast::Client.campaign_call(\n  c_phone: \"+16173999981, +16173999982, +16173999983\",\n  c_url: \"https://user_audio_url\",\n  c_callerID: \"+16173999980\",\n  c_date: \"now\",\n  mobile_only: \"1\",\n  c_audio: \"mp3\"\n)\n\nresult.success?\ntrue\n\nresult.session_id\n1234567788\n\n\n\nresult.failed?\nfalse\n\nresult.error\n\"Bad Audio, can't download\"\n\n```\n\nTo receive a status of each call, MobileSphere uses webhook. The POST HTTP Form method is used. Clients should provide a URL to which each call status data can be posted automatically. This is optional.\n\nExample: *c_dispo_url* = \"https://www.yoursite.com/results\"\n\nIf *c_dispo_url* is provided, each call status is sent back using POST\nand you can use Slybroadcast::Utilities.callback_parser to parse this\nPOST\n\nPosible response :\n\nsession_id, phone_number, status, failure_reason, delivery_time, carrier\n\nExample\n\n``` ruby\n\nexample_body = \"9996130985|9996449444|OK||2017-05-11 17:38:18|verizon wireless:6006 - svr/2\"\n\nSlybroadcast::Utilities.callback_parser(example_body) do |session_id, phone_number, status, failure_reason, delivery_time, carrier|\n  {\n    session_id: session_id,\n    phone_number: phone_number,\n    status: status,\n    failure_reason: failure_reason,\n    delivery_time: delivery_time,\n    carrier: carrier\n  }\nend\n\n```\n\n### Request Status Campaign\n\nTo request the call status of one phone number, the following parameters must be included. Be sure the session_id is the one received in response to your initial campaign submission.\n\n``` ruby\n\nresult = Slybroadcast::Client.campaign_status(\n  session_id: \"123456\",\n  c_phone: \"9996449444\"\n)\n\nresult.success?\ntrue\n\nresult.call\n{\n  :session_id=\u003e\"123456\",\n  :phone_number=\u003e\"9996449444\",\n  :status=\u003e\"OK\",\n  :failure_reason=\u003e\"\",\n  :delivery_time=\u003e\"2017-05-11 17:38:18\",\n  :carrier=\u003e\"verizon wireless:6006 - svr/2\"\n}\n\n\n```\n\n### Pause Campaign\n\nTo temporarily pause a campaign or session, but not cancel it.\n\n``` ruby\n\nresult = Slybroadcast::Client.campaign_pause(session_id: \"6045428032\")\n\nresult.success?\ntrue\n\nresult.session_id\n1234567788\n\n\n\nresult.failed?\nfalse\n\nresult.error\n\"already finished\"\n\n```\n\n### Resume Campaign\n\nTo resume a campaign.\n\n``` ruby\n\nresult = Slybroadcast::Client.campaign_resume(session_id: \"6045428032\")\n\nresult.success?\ntrue\n\nresult.session_id\n1234567788\n\n\n\nresult.failed?\nfalse\n\nresult.error\n\"already finished\"\n\n```\n\n### Cancel Campaign\n\nTo cancel a campaign.\n\n``` ruby\n\nresult = Slybroadcast::Client.campaign_cancel(session_id: \"6045428032\")\n\nresult.success?\ntrue\n\nresult.session_id\n1234567788\n\n\n\nresult.failed?\nfalse\n\nresult.error\n\"already finished\"\n\n```\n\n### Request Account Message Balance\n\nTo request the number of remaining messages in your account.\n\n``` ruby\n\nresult = Slybroadcast::Client.account_message_balance\n\nresult.success?\ntrue\n\nresult.remaining_messages\n\"12345\"\n\nresult.pending_messages\n\"123\"\n\n\n\nresult.failed?\nfalse\n\n```\n\n### Retrieve a List of all Audio Files\n\nTo view a full list of your audio files.\n\n``` ruby\n\nresult = Slybroadcast::Client.list_audio_files\n\nresult.success?\ntrue\n\nresult.list\n[\n  {:system_file_name=\u003e\"170425242023265.wav\", :audio_file_name=\u003e\"123456\", :created=\u003e\"2017-04-25 22:42:25\"},\n  {:system_file_name=\u003e\"294b755.wav\", :audio_file_name=\u003e\"recording20160425-31049-1mq2hk7\", :created=\u003e\"2017-05-03 20:39:11\"},\n  {:system_file_name=\u003e\"15213094.wav\", :audio_file_name=\u003e\"Test01\", :created=\u003e\"2017-05-03 20:38:16\"}\n]\n\n\nresult.failed?\nfalse\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaceto%2Fslybroadcast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaceto%2Fslybroadcast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaceto%2Fslybroadcast/lists"}