Twelixir (Twelixir v0.1.0) View Source
Twilio Conversation API Integration for Elixir. For more information please visit Twilio Conversations Documentation
Link to this section Summary
Functions
Creates a new conversation
Creates a message
Creates a participant on a conversation
Creates an sms type participant on a conversation
Deletes a conversation
Deletes a message
Delete participant
Gets all conversations
Gets all messages
Gets all participants
Gets a conversation
Gets a message
Gets multiple conversations (with pagination)
Gets multiple messages (with pagination)
Gets multiple participants (with pagination)
Gets a specific participant
Updates a conversation
Updates a message
Update participant
Validates a phone number
Link to this section Functions
Creates a new conversation
Parameters
- friendly_name: string
- attrs: map (you can put any field you want for you own needs)
Examples
iex> Twelixir.create_conversation("Alvin - Sample", %{status: "active"})
%{
"account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"attributes" => "{"status":"active"}",
"chat_service_sid" => "CXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"date_created" => "2021-02-24T02:04:36Z",
"date_updated" => "2021-02-24T02:04:36Z",
"friendly_name" => "Alvin - Sample",
"links" => %{
"messages" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages",
"participants" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants",
"webhooks" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Webhooks"
},
"messaging_service_sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"state" => "active",
"timers" => %{},
"unique_name" => nil,
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Creates a message
Parameters
- conversation_sid: coversation's sid
- author: message author (:string)
- message_body: the actual message
- attrs: map (you can put any field you want for you own needs) - In my case this is where I monitor the message's read and unread state.
Examples
iex> Twelixir.create_message("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "Sample Author", "Hi?", %{status: "unread"})
%{
"account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"attributes" => "{"status":"unread"}",
"author" => "Sample Author",
"body" => "Hi?",
"conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"date_created" => "2021-02-25T10:28:38Z",
"date_updated" => "2021-02-25T10:28:38Z",
"delivery" => nil,
"index" => 0,
"links" => %{
"delivery_receipts" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Receipts"
},
"media" => nil,
"participant_sid" => nil,
"sid" => "IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Creates a participant on a conversation
Parameters
- conversation_sid: coversation's sid
- indentity: unique participant identity (can be user.id)
- attrs: map (you can put any field you want for you own needs)
Examples
iex> Twelixir.create_participant_chat("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "AlvinIdentity", %{type: "web"})
%{
"account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"attributes" => "{"type":"web"}",
"conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"date_created" => "2021-02-25T07:46:00Z",
"date_updated" => "2021-02-25T07:46:00Z",
"identity" => "AlvinIdentity",
"last_read_message_index" => nil,
"last_read_timestamp" => nil,
"messaging_binding" => nil,
"role_sid" => "RLXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants/MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
create_participant_sms(conversation_sid, phone_number, country_code, twilio_proxy_mobile, attrs)
View SourceCreates an sms type participant on a conversation
Parameters
- conversation_sid: coversation's sid
- phone_number: integer
- country_code: :string
- twilio_proxy_mobile: :string
- attrs: map (you can put any field you want for you own needs)
Examples
iex> Twelixir.create_participant_sms("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 9294229311, "US" "+16282003999", %{type: "web"})
%{
"account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"attributes" => "{"type":"web"}",
"conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"date_created" => "2021-02-12T21:33:59Z",
"date_updated" => "2021-02-12T21:33:59Z",
"identity" => nil,
"last_read_message_index" => nil,
"last_read_timestamp" => nil,
"messaging_binding" => %{
"address" => "+19294229311",
"proxy_address" => "+16282003999",
"type" => "sms"
},
"role_sid" => "RXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants/MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Deletes a conversation
Parameters
- conversation_sid: coversation's sid
Examples
iex> Twelixir.delete_conversation("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
:ok
Deletes a message
Parameters
- conversation_sid: coversation's sid
- message_sid: message's sid
Examples
iex> Twelixir.delete_message("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
:ok
Delete participant
Parameters
- conversation_sid: coversation's sid
- participant_sid: participant's sid
Examples
iex> Twelixir.delete_participant("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
:ok
Gets all conversations
Examples
iex> Twelixir.get_all_conversations()
%{
"conversations" => [
%{
"account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"attributes" => "{"status":"active"}",
"chat_service_sid" => "ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"date_created" => "2021-02-24T02:04:36Z",
"date_updated" => "2021-02-24T02:04:36Z",
"friendly_name" => "Alvin - Sample",
"links" => %{
"messages" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages",
"participants" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants",
"webhooks" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Webhooks"
},
"messaging_service_sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"state" => "active",
"timers" => %{},
"unique_name" => nil,
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
},
...
],
"meta" => %{
"first_page_url" => "https://conversations.twilio.com/v1/Conversations?PageSize=PageSize&Page=0",
"key" => "conversations",
"next_page_url" => "https://conversations.twilio.com/v1/Conversations?PageSize=PageSize&Page=1&PageToken=PXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"page" => 0,
"page_size" => page_size,
"previous_page_url" => nil,
"url" => "https://conversations.twilio.com/v1/Conversations?PageSize=PageSize&Page=0"
}
}
Gets all messages
Parameters
- conversation_sid: coversation's sid
Examples
iex> Twelixir.get_all_messages("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
%{
"messages" => [
%{
"account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"attributes" => "{"status":"unread"}",
"author" => "Sample Author",
"body" => "Hi?",
"conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"date_created" => "2021-02-25T10:28:38Z",
"date_updated" => "2021-02-25T10:28:38Z",
"delivery" => nil,
"index" => 0,
"links" => %{
"delivery_receipts" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Receipts"
},
"media" => nil,
"participant_sid" => nil,
"sid" => "IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
},
...
],
"meta" => %{
"first_page_url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages?PageSize=50&Page=0",
"key" => "messages",
"next_page_url" => nil,
"page" => 0,
"page_size" => 50,
"previous_page_url" => nil,
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages?PageSize=50&Page=0"
}
}
Gets all participants
Parameters
- conversation_sid: coversation's sid
Examples
iex> Twelixir.get_all_participants("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
%{
"meta" => %{
"first_page_url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants?PageSize=50&Page=0",
"key" => "participants",
"next_page_url" => nil,
"page" => 0,
"page_size" => 50,
"previous_page_url" => nil,
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants?PageSize=50&Page=0"
},
"participants" => [
%{
"account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"attributes" => "{"type":"web"}",
"conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"date_created" => "2021-02-25T07:46:00Z",
"date_updated" => "2021-02-25T07:46:00Z",
"identity" => "AlvinIdentity",
"last_read_message_index" => nil,
"last_read_timestamp" => nil,
"messaging_binding" => nil,
"role_sid" => "RXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants/MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
},
...
]
}
Gets a conversation
Parameters
- conversation_sid: coversation's sid
Examples
iex> Twelixir.get_conversation("SIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
%{
"account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"attributes" => "{"status":"active"}",
"chat_service_sid" => "ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"date_created" => "2021-02-24T02:04:36Z",
"date_updated" => "2021-02-24T02:04:36Z",
"friendly_name" => "Alvin - Sample",
"links" => %{
"messages" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages",
"participants" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants",
"webhooks" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Webhooks"
},
"messaging_service_sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"sid" => "SIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"state" => "active",
"timers" => %{},
"unique_name" => nil,
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Gets a message
Parameters
- conversation_sid: coversation's sid
- message_sid: message's sid
Examples
iex> Twelixir.get_message("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
%{
"account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"attributes" => "{"status":"unread"}",
"author" => "Sample Author",
"body" => "Hi?",
"conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"date_created" => "2021-02-25T10:28:38Z",
"date_updated" => "2021-02-25T10:28:38Z",
"delivery" => nil,
"index" => 0,
"links" => %{
"delivery_receipts" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Receipts"
},
"media" => nil,
"participant_sid" => nil,
"sid" => "IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Gets multiple conversations (with pagination)
Parameters
- page: current page
- page_size: conversation size per page
Examples
iex> Twelixir.get_multiple_conversations(1, 2)
%{
"conversations" => [
%{
"account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"attributes" => "{"status":"active"}",
"chat_service_sid" => "ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"date_created" => "2021-02-24T02:04:36Z",
"date_updated" => "2021-02-24T02:04:36Z",
"friendly_name" => "Alvin - Sample",
"links" => %{
"messages" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages",
"participants" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants",
"webhooks" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Webhooks"
},
"messaging_service_sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"state" => "active",
"timers" => %{},
"unique_name" => nil,
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
},
...
],
"meta" => %{
"first_page_url" => "https://conversations.twilio.com/v1/Conversations?PageSize=2&Page=0",
"key" => "conversations",
"next_page_url" => "https://conversations.twilio.com/v1/Conversations?PageSize=2&Page=2&PageToken=PXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"page" => 1,
"page_size" => 2,
"previous_page_url" => nil,
"url" => "https://conversations.twilio.com/v1/Conversations?PageSize=2&Page=1"
}
}
get_multiple_messages(conversation_sid, page \\ 0, page_size \\ 50)
View SourceGets multiple messages (with pagination)
Parameters
- conversation_sid: coversation's sid
- page: current page
- page_size: messages size per page
Examples
iex> Twelixir.get_multiple_messages("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 0, 2)
%{
"messages" => [
%{
"account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"attributes" => "{"status":"unread"}",
"author" => "Sample Author",
"body" => "Hi?",
"conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"date_created" => "2021-02-25T10:28:38Z",
"date_updated" => "2021-02-25T10:28:38Z",
"delivery" => nil,
"index" => 0,
"links" => %{
"delivery_receipts" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Receipts"
},
"media" => nil,
"participant_sid" => nil,
"sid" => "IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
},
...
],
"meta" => %{
"first_page_url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages?%3FPage=0&PageSize=2&Page=0",
"key" => "messages",
"next_page_url" => nil,
"page" => 0,
"page_size" => 2,
"previous_page_url" => nil,
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages?%3FPage=0&PageSize=2&Page=0"
}
}
get_multiple_participants(conversation_sid, page \\ 0, page_size \\ 50)
View SourceGets multiple participants (with pagination)
Parameters
- conversation_sid: coversation's sid
- page: current page
- page_size: participants size per page
Examples
iex> Twelixir.get_multiple_participants("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 0, 2)
%{
"meta" => %{
"first_page_url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants?PageSize=1&Page=0",
"key" => "participants",
"next_page_url" => nil,
"page" => 0,
"page_size" => 1,
"previous_page_url" => nil,
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants?PageSize=1&Page=0"
},
"participants" => [
%{
"account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"attributes" => "{"type":"web"}",
"conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"date_created" => "2021-02-25T07:46:00Z",
"date_updated" => "2021-02-25T07:46:00Z",
"identity" => "AlvinIdentity",
"last_read_message_index" => nil,
"last_read_timestamp" => nil,
"messaging_binding" => nil,
"role_sid" => "RXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants/MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
},
...
]
}
Gets a specific participant
Parameters
- conversation_sid: coversation's sid
- participant_sid: coversation's sid
Examples
iex> Twelixir.get_participant("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
%{
"account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"attributes" => "{"type":"web"}",
"conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"date_created" => "2021-02-25T07:46:00Z",
"date_updated" => "2021-02-25T07:46:00Z",
"identity" => "AlvinIdentity",
"last_read_message_index" => nil,
"last_read_timestamp" => nil,
"messaging_binding" => nil,
"role_sid" => "RXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants/MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Updates a conversation
Parameters
- conversation_sid: coversation's sid
- new attrs: map (you can put any field you want for you own needs)
- state: conversation state (active inactive close), note that once you close a conversation you can't re-activate it.
Examples
iex> Twelixir.update_conversation("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", %{status: "inactive"}, "inactive")
%{
"account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"attributes" => "{"status":"inactive"}",
"chat_service_sid" => "ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"date_created" => "2021-02-24T02:04:36Z",
"date_updated" => "2021-02-24T02:36:34Z",
"friendly_name" => "Alvin - Sample",
"links" => %{
"messages" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages",
"participants" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants",
"webhooks" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Webhooks"
},
"messaging_service_sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"state" => "inactive",
"timers" => %{},
"unique_name" => nil,
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
update_message(conversation_sid, message_sid, message_body, attrs)
View SourceUpdates a message
Parameters
- conversation_sid: coversation's sid
- message_sid: message's sid
- message_body: the actual message
- attrs: map (you can put any field you want for you own needs) - In my case this is where I monitor the message's read and unread state.
Examples
iex> Twelixir.update_message("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "Hello", %{status: "read"})
%{
"account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"attributes" => "{"status":"read"}",
"author" => "Sample Author",
"body" => "Hello",
"conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"date_created" => "2021-02-25T10:28:38Z",
"date_updated" => "2021-02-25T10:46:05Z",
"delivery" => nil,
"index" => 0,
"links" => %{
"delivery_receipts" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Receipts"
},
"media" => nil,
"participant_sid" => nil,
"sid" => "IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Update participant
Parameters
- conversation_sid: coversation's sid
- participant_sid: participant's sid
- attrs: map (you can put any field you want for you own needs)
Examples
iex> Twelixir.update_participant("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", %{type: "WhatsApp"})
%{
"account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"attributes" => "{"type":"WhatsApp"}",
"conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"date_created" => "2021-02-25T07:46:00Z",
"date_updated" => "2021-02-25T08:07:35Z",
"identity" => "AlvinIdentity",
"last_read_message_index" => nil,
"last_read_timestamp" => nil,
"messaging_binding" => nil,
"role_sid" => "RXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants/MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Validates a phone number
NOTES:
- Assumes the phone number is a US number unless told otherwise
- Use two letter country codes - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements
- You can look up the phone carrier info with '?Type=carrier'; BUT IT COSTS EXTRA
- You can attempt to lookup up the persons information with '?Type=caller-name'; BUT IT COSTS EXTRA
Examples
iex> Twelixir.validate_mobile(9294229311, "US")
"+19294229311"