Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Añadir integración de Bienvenida

11/25
Recursos

Crea un mensaje de bienvenida. Dota a tu bot de la empatía que necesita para empezar una conversación con los usuarios.

Aportes 27

Preguntas 16

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

para los que no les sale el botón de empiezan es porque hay que “combinar” el código con el de get_started asi:

curl -X POST -H "Content-Type: application/json" -d '{
  "get_started": {"payload": "GET_STARTED_GDENPIZZA"},
  "greeting": [
    {
      "locale":"default",
      "text":"Hola {{user_first_name}}, soy GdenPizza y te recomiendo las mejores pizza"
    }, {
      "locale":"en_US",
      "text":"hi {{use_first_name}}"
    }
  ]
}' "https://graph.facebook.com/v2.6/me/messenger_profile?access_token=<PAGE_ACCESS_TOKEN>"

hola, en mi caso hago todo hasta el minuto 6:31 pero, me marca este error:

error":{“message”:"(#100) Requires one of the params: get_started,persistent_men u,target_audience,whitelisted_domains,greeting,account_linking_url,payment_setti ngs,home_url",“type”:“OAuthException”,“code”:100,“fbtrace_id”:“HuOZraMoYra”}}

ya descargue el curl y lo coloqué en la carpeta, ya lo intenté desde la consola de git bash y en cdm y nada… alguien que me ayude!! Gracias!

No he logrado entender, no se supone que al darle empezar deberia aparecer el mensaje que pusimos en “greeting” ??
En la consola del curl me aparece success, pero en la del servidor me sale error.

Yo tuve el mismo problema de todos, pero tengan cuidado al escribir todo el código. y revisen varias veces! a mi el codigo me funciono en Window sin problemas… solo me dio error cuando escribí malll!!

Los pasos extra que hay que hacer para que funcione en Windows son:

  • Descargar curl
  • Descomprimirlo y guardarlo en la carpeta donde tenemos todo el proyecto (en este caso pugpizza)
  • Copiar el código en la terminal y ejecutarlo
    En mi caso lo ejecuté desde una nueva pestaña en GitBash

Estuve un rato en esto, abajo lo mencionan pero para actualizarlo, Para usuarios de windows, es recomendable usar git bach con el curl, yo estuve usando cmder normal y no me funciono (también se puede configurar el cmder para usar bash) pero con git bash no hubo ningún problema

Yo tuve el mismo problema. Primero, intente con Curl, pero no me sirvio. Entonces, probe con git y si funciono.

excellent!!! funciono muy bien!

hola me podrian ayudar con el curl me sale el siguiente error lo estoy haciendo por window trate de bajar el curl pero no se bien si estoy bajando lo correcto

C:\Users\tinch\Documents\platzi\carrera de Arquitectura fronted\Curso de Bots con Facebook Messenger\MegasPizzas>curl -x POST -H “Content-type: application/json”-d {
curl: (3) [globbing] unmatched brace in column 1

C:\Users\tinch\Documents\platzi\carrera de Arquitectura fronted\Curso de Bots con Facebook Messenger\MegasPizzas> “get_started”:{“payload”:“GET_STARTED_MEGAPIZZAS"
El nombre de archivo, el nombre de directorio o la sintaxis de la etiqueta del volumen no son correctos.
C:\Users\tinch\Documents\platzi\carrera de Arquitectura fronted\Curso de Bots con Facebook Messenger\MegasPizzas>}}“https://graph.facebook.com/v2.6/me/messenger_profile?access_token=EAAeF4OKhPuEBAE67AicdcamGzaAaIlaycIYZAbc1LaDLnPlw5eehOZAZBcvZAykKkemXZCGSoDR6CygjREcwa2x8pZBhsXDjLYbf3kAvhQH5i7ZAW2ujs44HLFPJLBmbFOqXuJroRZBduzVNGvLZBJNwhVZCdlEr259nnHvr2y5K6OtgZDZD
”}}“https://graph.facebook.com/v2.6/me/messenger_profile?access_token=EAAeF4OKhPuEBAE67AicdcamGzaAaIlaycIYZAbc1LaDLnPlw5eehOZAZBcvZAykKkemXZCGSoDR6CygjREcwa2x8pZBhsXDjLYbf3kAvhQH5i7ZAW2ujs44HLFPJLBmbFOqXuJroRZBduzVNGvLZBJNwhVZCdlEr259nnHvr2y5K6OtgZDZD”" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.

EN UBUNTO HAY QUE INSTALAR LA LIBRERIA
SUDO APT INSTALL CURL

¿Por qué el profesor ocupa el “locale”?
En la documentación de Facebook es “Locate”, además con locale me marca un error en la consola.

me sale el bach comando no found???

Creando el boton de bienvenida con curl

Ayuda sale este error al poner el código en la consola:

{“error”:{“message”:"(#100) Requires one of the params: get_started,persistent_menu,target_audience,whitelisted_domains,greeting,account_linking_url,payment_settings,home_url",“type”:“OAuthException”,“code”:100,“fbtrace_id”:“FR+0UA6Rdg6”}}

Estoy en un mac, que puedo hacer?

Ayuda por favor
me sale este error en la consola lo he buscado por varios medios y no encuentro solucion
Invoke-WebRequest : No se puede enlazar el parámetro ‘Headers’. No se puede convertir el valor “Content-Type: application/json” de tipo “System.String” al
tipo “System.Collections.IDictionary”.
En línea: 1 Carácter: 17

estoy trabajndo en windows

este es mi codigo
curl -X POST -H “Content-Type: application/json” -d ‘{
“get_started”: {“payload”:
“GET_STARTED_DANIEL_RODRIGUEZ”
}
}’ “https://graph.facebook.com/v2.6/me/messenger_profile?access_token=

Para los que no les envía el mensaje pero antes si lo enviaba, solo deben de esperar un minuto debido a que al retomar la conexión, siempre hay un delay en el servidor.

Cuando intento inicializar el mensaje de greeting recibo un error del lado del servidor, a pesar de que cuando lo configure con curl me salió el mensaje de “success”. El error aparece justamente cuando se presiona el botón de “empezar”.

**Este es el error que aparece en la consola:
**

mi codigo:

app.get('/webhook', function(req, response){
	if(req.query['hub.verify_token'] === 'effigia_token'){
		response.send(req.query['hub.challenge']);
	} else {
		response.send('No tienes permisos.');
	}
});

app.post('/webhook', function(req, res){
	const webhook_event = req.body.entry[0];
	if(webhook_event.messaging){
		webhook_event.messaging.forEach(event => {
			console.log(event);
			handleMessage(event);
		})
	}
	res.sendStatus(200);
});

function handleMessage(event){
	const senderId = event.sender.id;
	const messageText = event.message.text;
	const messageData = {
		recipient: {
			id: senderId
		},
		message: {
			text: messageText
		}
	}

	callSendApi(messageData);
}

function callSendApi(response){
	request({
		"uri": "https://graph.facebook.com/me/messages/",
		"qs": {
			"access_token": acces_token
		},
		"method": "POST",
		"json": response
	},
	function(err){
		if (err){
			console.log('Ha ocurrido un error');
		} else {
			console.log('Mensaje enviado');
		}
	}
	)	
}```


Parece ser algo con la función de handlemessage

Par los usuarios windows que usan cmdr cuando abran el tab seleccione que la consola sea {bash::bash} en lugar de {cmd::Cmdr} con eso podrán correr los comandos curl sin problemas, me tomo un rato pero al fin encontré como hacerlo, espero les sirva

Me sale este error al ejecutar el código y no se que significa

$ curl -x POST -H "Content-Type: application/json" -d '{
>  "persistent_menu": [
>   {
>    "locate": "default",
>    "composer_input_disable": false,
>    "call_to_actions": [
>     {
>      "title": "pugpizza",
>      "type": "nested",
>      "call_to_actions":[
>       {
>        "title": "Acerca",
>        "type": "postback",
>        "payload": "ABOUT_PAYLOAD"
>       }
>      ]
>     },
>     {
>      "title": "Menú de Productos",
>      "type": "nested",
>      "call_to_actions": [
>       {
>        "title": "Pizzas",
>        "type": "postback";
>        "payload": "PIZZAS_PAYLOAD"
>       }
>      ]
>     },
>     {
>      "type": "web_url",
>      "title": "Paginá web",
>      "url": "https://platzi.com",
>      "webview_height_ratio": "full"
>     }
>    ]
>   }
>  ]
> }' "https://graph.facebook.com/v2.11/me/messenger_profile?access_token=EAAME3QcDnIsBAMiVZCmsoeoLDzg6APc7PFGeR1yzcLtBvNJasP6zCVRuldQwPs4ZAYNAOG3a5I00LZC91LSxOKy1hNmnIWjQRz7IcGIRQXhkcGqutvFrLYDZA3Do35aZAvbMxRrnZCQcsHFZCdKZAHZCjcLWKZAYaWznFel95MU6l3UZC2zxxnHzUM5"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0curl: (5) Could not resolve proxy: POST

tengo un error cuando presiono el boton empezar, antes de eso ejecuto en el bash y sale success, luego en la consola donde se corre el nodemon arroja error? alguna solcuion

Tuve un error al intentar usar comilla simple en el mensaje en ingles:

I’m a robot generaba error
I am a robot funciona correctamente

Para todos los que quieran tener la opción de redimensionar el reproductor, es decir, ponerlo a todo el ancho por ejemplo, les dejo un link a un pequeño script que hice:
https://github.com/ErickCodigo/Full-Width-For-Platzi-Video

Solamente pido un corazoncito a cambio

También es posible hacer esta configuración usando Postman o Insomnia

[email protected] MINGW64 ~/desktop/ichirobo (master)
$ curl -X POST -H “Content-Type: application/json” -d "

{
“get_started”: {
“payload”:"<GET_STARTED_ICHIROBO>"
}
}" "https://graph.facebook.com/v2.6/me/messenger_profile?access_token=EAADrajQ7mxYBAIhNVcJyo1cf3r5F7LRnC7ZCN4hZBw0pPmlMiwcDe722ZCEDvCBDumYS5C3EJoQVWF5n2XZCTooVXKdZBgZCWtlUEBQukximOGBPsgnMMevfvzfE5SbWseH0QZBLt5FgarZAL9r9pej705S66wNWZB68zhbJiWnU3UqOy69ZAKbkhz"
bash: GET_STARTED_ICHIROBO: No such file or directory

buenos dias, me sale este error, que puedo hacer para solucionarlo.

const express = require("express");
const axios = require("axios");
const app = express();
const cors = require("cors");
const url = "https://graph.facebook.com/v8.0/me/messages";
const profile_url = "https://graph.facebook.com/v2.6/me/messenger_profile";
const data = require("./globals.json");
const TOKEN =
  process.env.TOKEN ||
  "you token";

const welComeMessage =
  "hello {{user_first_name}} welcome to my page , have good time";
const welComeMessage_es =
  "Hola {{user_first_name}} bienvenido a mi pagina, pasa un buen momento ";
// //facebook api welcome messages
// {{user_first_name}}
// {{user_last_name}}
// {{user_full_name}}

///object for welcome message
// "greeting":[
//   {
//     "locale":"default",
//     "text":"Hello!"
//   }, {
//     "locale":"en_US",
//     "text":"Timeless apparel for the masses."
//   }
// ]

//init buttons
// curl -X POST -H "Content-Type: application/json" -d '{   "get_started": {"payload": "GET_STARTED_DICCIONARIO"} }' "https://graph.facebook.com/v2.6/me/messenger_profile?access_token=El _Token"
const initButtons = async () => {
  const button = { get_started: { payload: "GET_STARTED_AQUINOMAS" } };
  const welcome = {
    greeting: [
      {
        locale: "default",
        text: welComeMessage_es,
      },
      {
        locale: "en_us",
        text: welComeMessage,
      },
    ],
  };
  const contents = [button, welcome];
  if (data.bander) {
    try {
      const results = contents.map((obj) =>
        axios.post(profile_url, obj, {
          params: { access_token: TOKEN },
        })
      );

      return Promise.all(results);
    } catch (error) {
      return error;
    }
  }
};

initButtons()
  .then((s) => {
    s.forEach((d) => console.log(d.status));
  })
  .catch((e) => {
    console.log("error", e);
  });

app.use(cors());

app.use(express.json());

app.get("/", (req, res) => {
  console.log("hello world");
});

app.get("/webhook", (req, res) => {
  if (req.query["hub.verify_token"] == "mi_token_uwu") {
    res.send(req.query["hub.challenge"]);
  } else {
    res.send("not permissions");
  }
});

app.post("/webhook", (req, res) => {
  const event_webhook = req.body.entry[0];
  const messages = event_webhook.messaging;
  if (messages) {
    messages.forEach((element) => {
      handleMessage(element);
    });
  }

  res.sendStatus(200);
});

const handleMessage = (event) => {
  const senderid = event.sender.id;
  const message = event.message.text;
  const response = {
    recipient: {
      id: senderid,
    },
    message: {
      text: message,
    },
  };
  callApi(response);
};

// curl -X POST -H "Content-Type: application/json" -d '{
//   "recipient":{
//     "id":"<PSID>"
//   },
//   "message":{
//     "text":"hello, world!"
//   }
// }' "https://graph.facebook.com/v8.0/me/messages?access_token=<PAGE_ACCESS_TOKEN>"

const callApi = async (data) => {
  let response = await axios.post(url, data, {
    params: {
      access_token: TOKEN,
    },
  });

  console.log(response);
};
app.set("port", process.env.PORT || 300);

app.listen(app.get("port"), () => {
  console.log("listen in port" + app.get("port"));
});

Hasta est epunto funciona bien pero obtengo un error en la consola, creo que se debe a que no configuramos algo que se llaman postbacks alguien podria ayudarme