three sub que pubsub pub name google for cases acknowledge node.js google-app-engine gmail gmail-api google-cloud-pubsub

node.js - que - Google Cloud Pub/Sub API-Push E-mail



pubsub subscriber java (1)

TL; DR

No puedes suscribirte a las notificaciones push desde el lado del cliente.

Configure un servidor HTTPS para manejar los mensajes. Los mensajes se enviarán al punto final de URL que configure, representando la ubicación de ese servidor. Su servidor debe ser accesible a través de un nombre DNS y debe presentar un certificado SSL firmado. (Las aplicaciones de App Engine están preconfiguradas con certificados SSL).

Simplemente suscríbase a las notificaciones automáticas en su servidor y, cuando reciba la notificación, podrá averiguar a quién concierne. Los datos que obtendrá de las notificaciones son los usuarios que le interesan y el historial de historial relevante, así:

// This is all the data the notifications will give you. {"emailAddress": "[email protected]", "historyId": "9876543210"}

Entonces podría, por ejemplo, emitir un evento a través de Socket.io al usuario relevante si está en línea, y hacer que se sincronice con el historyId provisto en el lado del cliente.

Estoy usando node.js para crear una aplicación que recibe un PUSH de Gmail cada vez que se recibe un correo electrónico, lo comprueba contra una base de datos de terceros en un CRM y crea un nuevo campo en el CRM si el correo electrónico está contenido allí . Tengo problemas para usar Cloud Pub / Sub de Google, que parece ser la única forma de obtener push de Gmail sin una votación constante.

He seguido las instrucciones aquí: https://cloud.google.com/pubsub/prereqs, pero no entiendo cómo se supone que funciona exactamente desde una aplicación en mi escritorio. Parece que pub / sub se puede conectar a un dominio verificado, pero no puedo conectarlo directamente al script .js que tengo en mi computadora. Guarde la clave de la API en un archivo json y use lo siguiente:

var gcloud = require(''gcloud''); var pubsub; // From Google Compute Engine: pubsub = gcloud.pubsub({ projectId: ''my-project'', }); // Or from elsewhere: pubsub = gcloud.pubsub({ projectId: ''my-project'', keyFilename: ''/path/to/keyfile.json'' }); // Create a new topic. pubsub.createTopic(''my-new-topic'', function(err, topic) {}); // Reference an existing topic. var topic = pubsub.topic(''my-existing-topic''); // Publish a message to the topic. topic.publish(''New message!'', function(err) {}); // Subscribe to the topic. topic.subscribe(''new-subscription'', function(err, subscription) { // Register listeners to start pulling for messages. function onError(err) {} function onMessage(message) {} subscription.on(''error'', onError); subscription.on(''message'', onMessage); // Remove listeners to stop pulling for messages. subscription.removeListener(''message'', onMessage); subscription.removeListener(''error'', onError); });

Sin embargo, recibo errores como si no estuviera conectado al servidor y en la lista de la API veo solo errores, sin éxitos reales. Claramente estoy haciendo algo mal, ¿alguna idea de lo que podría ser?

¡Gracias de antemano!