private static async Task RunAync() { var client = new ClientMessenger("EAAJZAhdpGZABoBAAYX3fIW81yeZBvQ2EYL1x9O8258j50XHPEBMwrwGCR2u00LEjBJZAlZCwYeZCo1mXozZCgGZCvguFABJug2rdaGWt9ZB5YRIM1rSd2G3zZCgTygTXG2HT7RgNEseZCVazbnpFkDHCpgSJDVzCKaBd73Of39SsSSOnQZDZD"); // await SendSimpleMessageAync(client, "2001954456545360"); // await SendAttachmentsMessageAync(client, "2001954456545360"); // await SendQuickRepliesAsync(client, "2001954456545360"); // await SendButtonTemplateAsync(client, "2001954456545360"); // await SendGenericTemplateAsync(client, "2001954456545360"); // await SendCardAsync(client, "2001954456545360"); // await SendContactAsync(client, "2001954456545360"); // await SendLocationAsync(client, "2001954456545360"); await SendCarouselAsync(client, "2001954456545360"); // await SendMediaUrlAsync(client, "2001954456545360"); // await SendFacebookMediaAsync(client, "2001954456545360"); // Generic template // - done - Carousel // - done - List: // Button template // - done - message with buttons - use this hubster: regular buttons, quick replies and links // done - send files - images, audio, video, etc. using attachment - use by URL rather than upload // Media template // video // audio - doesn't work }
private static async Task SendContactAsync(ClientMessenger client, string userId) { var genericTemplate = new GenericTemplateAttachment(new List <GenericElement> { new GenericElement { ImageUrl = "https://vignette.wikia.nocookie.net/jamesbond/images/7/78/Eva_Green.jpg/revision/latest/scale-to-width-down/1000?cb=20111001142753", Title = "Eva Green", Subtitle = "Mighty Health\n108 Kirkbride Crescent, Maple, ON\[email protected]\n17148736202", Buttons = new List <Button> { new CallMeButton { Title = "Call", PhoneNumber = "17148736202" }, } }, }); var message = new AttachmentMessage { Attachment = genericTemplate }; var package = await client.GetJSONRenderedAsync(userId, message); var result = await client.SendMessageAsync(userId, message); }
private static async Task SendGenericTemplateAsync(ClientMessenger client, string userId) { var genericTemplate = new GenericTemplateAttachment(new List <GenericElement> { new GenericElement { ImageUrl = "https://hubsterdevcdn.blob.core.windows.net/pub/demo/webchat/cars/list_car_dragon.png", //ItemUrl = "google.com?action=123", Title = "Green Dragon", Subtitle = "$2.99\nPage *Scoped* User ID (PSID) of the message recipient. The user needs to have interacted with any of the Messenger platform.", //DefaultAction = new DefaultAction //{ // // Title = "Default Action Title", // Type = "web_url", // Url = "google.com?item=123", // WebviewHeightRatio = "COMPACT", //} }, //new GenericElement //{ // ImageUrl = "https://hubsterdevcdn.blob.core.windows.net/pub/demo/webchat/cars/list_car_red_baron.png", // Title = "My Title", // Subtitle = "This is my subtitle and it's very long.\nNext line." //} });; var message = new AttachmentMessage { Attachment = genericTemplate }; var package = await client.GetJSONRenderedAsync(userId, message); var result = await client.SendMessageAsync(userId, message); }
private static async Task SendQuickRepliesAsync(ClientMessenger client, string userId) { var buttonsMessage = new TextMessage { Text = "Pick a size:", QuickReplies = new List <QuickReply> { new TextQuickReply("Small", "small selected"), new TextQuickReply("Medium", "medium selected"), new TextQuickReply("Large", "large selected"), //new TextQuickReply("One", "One selected"), //new TextQuickReply("Two", "Two selected"), //new TextQuickReply("Three", "Three selected"), //new TextQuickReply("Four", "Four selected"), //new TextQuickReply("Five", "Five selected"), //new TextQuickReply("Six", "Six selected"), } }; // var package = await client.GetJSONRenderedAsync(userId, buttonsMessage, messageType: MessageType.Response); var result1 = await client.SendMessageAsync(userId, buttonsMessage); var buttonImagesMessage = new TextMessage { Text = "Pick a color:", QuickReplies = new List <QuickReply> { new TextQuickReply("Red", "red selected", "https://hubsterdevcdn.blob.core.windows.net/pub/demo/playground/red.png"), new TextQuickReply("Green", "green selected", "https://hubsterdevcdn.blob.core.windows.net/pub/demo/playground/green.png"), new TextQuickReply("Yellow", "yellow selected", "https://hubsterdevcdn.blob.core.windows.net/pub/demo/playground/yellow.png"), } }; // var package = await client.GetJSONRenderedAsync(userId, buttonImagesMessage, messageType: MessageType.Response); var result2 = await client.SendMessageAsync(userId, buttonImagesMessage); // request for phone number var phoneMessage = new TextMessage { Text = "Please send us your phone number?", QuickReplies = new List <QuickReply> { new PhoneNumberQuickReply() } }; var result10 = await client.SendMessageAsync(userId, phoneMessage); // request for email var emailMessage = new TextMessage { Text = "Please send us your email address.", QuickReplies = new List <QuickReply> { new EmailQuickReply() } }; var result11 = await client.SendMessageAsync(userId, emailMessage); // has been deprecated var locationMessage = new TextMessage { Text = "Please send us your location?", QuickReplies = new List <QuickReply> { new LocationQuickReply() } }; var result12 = await client.SendMessageAsync(userId, locationMessage); }
private static async Task SendMediaUrlAsync(ClientMessenger client, string userId) { var vedio = new VideoAttachment("https://hubsterdevcdn.blob.core.windows.net/engine/00000000-0000-0000-0000-000000000001/media/8338156741751296193-textinmotion_sample_576p.mp4"); var message = new AttachmentMessage { Attachment = vedio }; var package = await client.GetJSONRenderedAsync(userId, message); var result = await client.SendMessageAsync(userId, message); }
public void Deserialize(BitBuffer buffer, ClientMessenger cm) { packetNumber = buffer.GetInt(); List <CubeEntity> news = new List <CubeEntity>(); while (buffer.HasRemaining()) { CubeEntity aux = new CubeEntity(null, -1); aux.DeserializeSpecific(buffer, entities, cm); news.Add(aux); } entities = news; }
private static async Task SendButtonTemplateAsync(ClientMessenger client, string userId) { // *NOTE: You're only allowed to send 3 buttons at a time var list = new List <Button> { //new UrlButton() //{ // Title = "My Url", // Url = "http://google.com" //}, //new PostbackButton //{ // Title = "Button 1", // Payload = "Button 1 selected" //}, //new PostbackButton //{ // Title = "Button 2", // Payload = "Button 2 selected" //}, //new PostbackButton //{ // Title = "Button 3", // Payload = "Button 3 selected" //}, new CallMeButton() { Title = "Call me please", PhoneNumber = "416555000" }, //new LogInButton() //{ // Url = "http://google.com" //}, //new LogOutButton() //{ //} }; var text = "Hey there welcome to Hubster! How can we help you today?"; var message = new AttachmentMessage { Attachment = new ButtonTemplateAttachment(text, list) }; var package = await client.GetJSONRenderedAsync(userId, message); var result = await client.SendMessageAsync(userId, message); }
private static async Task SendFacebookMediaAsync(ClientMessenger client, string userId) { var mediaTemplate = new MedidaTemplateAttachment(new List <MediaElement> { new ImageElement { Url = "need a facebook url" } }); var message = new AttachmentMessage { Attachment = mediaTemplate }; var package = await client.GetJSONRenderedAsync(userId, message); var result = await client.SendMessageAsync(userId, message); }
private static async Task SendSimpleMessageAync(ClientMessenger client, string userId) { var result1 = await client.SendMessageAsync(userId, new TextMessage("Hi there Ross - 4!")); // typing on/off var result2 = await client.SendActionAsync(userId, SenderAction.TypingOn); await Task.Delay(10000); var result3 = await client.SendActionAsync(userId, SenderAction.TypingOff); var userProfile = await client.GetUserProfileAsync(userId); // set greeting - on first attaching var result10 = await client.SetGreetingTextAsync("Welcome to Hubster"); // clear greeting var result11 = await client.SetGreetingTextAsync(); }
private static async Task SendLocationAsync(ClientMessenger client, string userId) { var genericTemplate = new GenericTemplateAttachment(new List <GenericElement> { new GenericElement { ImageUrl = "https://hubsterdevcdn.blob.core.windows.net/engine/00000000-0000-0000-0000-000000000001/maps/2607085880410200450-map.png", ItemUrl = "https://www.google.com/maps/place/108+Kirkbride+Crescent,+Vaughan,+ON+L6A+2J6", Title = "Location", Subtitle = "108 Kirkbride Crescent, Maple, ON, Canada, L6A2J6", }, }); var message = new AttachmentMessage { Attachment = genericTemplate }; var package = await client.GetJSONRenderedAsync(userId, message); var result = await client.SendMessageAsync(userId, message); }
private static async Task SendAttachmentsMessageAync(ClientMessenger client, string userId) { using (var stream = File.OpenRead(@"C:\Data\FTP\Ross\hubster.io\work\Sample Attachments\File\pdf-sample.pdf")) { var result = await client.SendFileAttachmentAsync(userId, stream, "pdf-sample.pdf", "application/pdf", "file"); } using (var stream = File.OpenRead(@"C:\Data\FTP\Ross\hubster.io\work\Sample Attachments\Images\Cosmos.jpg")) { var result = await client.SendFileAttachmentAsync(userId, stream, "Cosmos.jpg", "image/jpeg", "image"); } using (var stream = File.OpenRead(@"C:\Data\FTP\Ross\hubster.io\work\Sample Attachments\Audio\2647611198313044978-a2002011001_e02.mp3")) { var result = await client.SendFileAttachmentAsync(userId, stream, "NiceMusic.mp3", "audio/mp3", "audio"); } using (var stream = File.OpenRead(@"C:\Data\FTP\Ross\hubster.io\work\Sample Attachments\video\TextInMotion-Sample-576p.mp4")) { var result = await client.SendFileAttachmentAsync(userId, stream, "My Video.mp3", "video/mp4", "video"); } }
private static async Task SendCardAsync(ClientMessenger client, string userId) { var genericTemplate = new GenericTemplateAttachment(new List <GenericElement> { new GenericElement { ImageUrl = "https://hubsterdevcdn.blob.core.windows.net/pub/demo/webchat/retail/contacts/maxim_shaw2.png", Title = "Some Card Title", Subtitle = "$2.99\nSome card details that can be at most 80 characters.", Buttons = new List <Button> { new UrlButton { Title = "My Url", Url = "http://google.com" }, new PostbackButton { Title = "My postback", Payload = "My postback selected" }, // ignore new CallMeButton { Title = "Call me please", PhoneNumber = "416419001" }, } }, }); var message = new AttachmentMessage { Attachment = genericTemplate }; var package = await client.GetJSONRenderedAsync(userId, message); var result = await client.SendMessageAsync(userId, message); }
/// <summary> /// Initializes a new instance of the <see cref="MessengerController"/> class. /// </summary> public MessengerController() { _webHookHandler = new MessengerWebhookHandler("Hubster.io", "29ae47721eb94a7b41b9d2f8271cc91a"); _clientMessenger = new ClientMessenger("EAAeZCcIjFqGABADu97rZA8ddjEetYM6MJ2Lj6dRrkZCudUEBY31MeCKcQYIe8ZCufeR2O1UMjoK0ttkN89AZCU20yx0PBZACYLJxKEahYM6uK8P8V8h3DUQa4TTnckWZA3NLvsIKFtVN6ZB4c1MzSPeChZCZCXAZBn26zdiNzDbKI0ZCGgZDZD"); }
public static Snapshot createInterpolationSnapshot(Snapshot previous, Snapshot next, float time, int id, ClientMessenger cm) { List <CubeEntity> cubeEntities = new List <CubeEntity>(); for (int i = 0; i < previous.entities.Count; i++) { int nextId = previous.entities[i].Id; if (!nextId.Equals(id)) { if (cm.isIdRegistered(nextId)) { var cubeEntity = next.getEntityById(nextId); if (cubeEntity != null) { cubeEntities.Add(CubeEntity.createInterpolationEntity(previous.entities[i], cubeEntity, time)); } else { cm.deletePlayer(nextId); } } } } return(new Snapshot(-1, cubeEntities)); }
/////////////////////////////////////////////////// #region Init private void Awake() { _messenger = GetComponent <ClientMessenger>(); _receiver = GetComponent <ClientReceiver>(); }
/// <summary> /// Initializes a new instance of the <see cref="MessengerController"/> class. /// </summary> public MessengerController() { _webHookHandler = new WebhookHandler("channelsis", "79faa9a8710333289b595925e5fb7e72"); _clientMessenger = new ClientMessenger("EAAa2PqNTZABwBAAXOwwbAbZCaUFqU3KTeiZC1LCJjOr2ZAZB32bXx0p9gMqWedLJsse4xW8BXMatyYrbvIp0ICLiDmRVxM8Yp6cHPZATYjDsz0qZCmhhZAHJNeYpkVNMuEKjIw9goQUHgI54YOouZBzJa80fZCYoxtgJaWVYyQEKOhawZDZD"); }
public void DeserializeSpecific(BitBuffer buffer, List <CubeEntity> entities, ClientMessenger cm) { Deserialize(buffer); CubeEntity founded = null; foreach (var c in entities) { if (c.id.Equals(aux_id)) { founded = c; break; } } if (founded == null) { this.gameObject = cm.createClient(aux_id, false); this.id = aux_id; this.health = aux_health; this.kills = aux_kills; } else { this.gameObject = founded.gameObject; this.id = founded.id; this.health = founded.health; } }
private static async Task SendCarouselAsync(ClientMessenger client, string userId) { var genericTemplate = new GenericTemplateAttachment(new List <GenericElement> { new GenericElement { ImageUrl = "https://hubsterdevcdn.blob.core.windows.net/pub/demo/webchat/cars/list_car_victorious.png", Title = "Victorious", Subtitle = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s.", Buttons = new List <Button> { // NOTE: consider adding padding to Title. Must be 16 minimal new PostbackButton { Title = Pad("Victorious", 16), Payload = "Victorious" }, // NOTE: consider adding padding to Title. Must be 16 minimal new UrlButton { Title = Pad("Info", 16), Url = "https://hubster.io?car=victorious" }, } }, new GenericElement { ImageUrl = "https://hubsterdevcdn.blob.core.windows.net/pub/demo/webchat/cars/list_car_dragon.png", Title = "Green Dragon", Subtitle = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s.", Buttons = new List <Button> { new PostbackButton { Title = Pad("Green Dragon", 16), Payload = "Green Dragon" }, new UrlButton { Title = Pad("Info", 16), Url = "https://hubster.io?car=green-dragon" }, } }, new GenericElement { ImageUrl = "https://hubsterdevcdn.blob.core.windows.net/pub/demo/webchat/cars/list_car_panther.png", Title = "Panther", Subtitle = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s.", Buttons = new List <Button> { new PostbackButton { Title = Pad("Panther", 16), Payload = "Panther" }, new UrlButton { Title = Pad("Info", 16), Url = "https://hubster.io?car=panther" }, } }, new GenericElement { ImageUrl = "https://hubsterdevcdn.blob.core.windows.net/pub/demo/webchat/cars/list_car_red_baron.png", Title = "Red Baron", Subtitle = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s.", Buttons = new List <Button> { new PostbackButton { Title = Pad("Red Baron", 16), Payload = "Red Baron" }, new UrlButton { Title = Pad("Info", 16), Url = "https://hubster.io?car=red-baron" }, } }, }); var message = new AttachmentMessage { Attachment = genericTemplate }; var package = await client.GetJSONRenderedAsync(userId, message); var result = await client.SendMessageAsync(userId, message); }