Интеграция с mailchimp в React Native Application

Я новичок в React Native. Я в основном пытаюсь выполнить интеграцию между моим приложением в React Native и MailChimp, я хочу сделать следующее: с того момента, как пользователь предоставит нам свой адрес электронной почты и отправит форму, для него будет отправлено электронное письмо через MailChimp. , Я использую Firebase для создания собственной базы электронной почты, но я хотел бы автоматизировать задачу отправки через mailchimp, метод, который я использую для сохранения писем в firebase, выглядит следующим образом:

saveEmail() {
    var id = firebase.database().ref().child('xxx').push().key;
    const valueEmail = this.state.input;
    const valueName = this.state.name;

    firebase.database().ref('/xxx/' + id).set({
        email: valueEmail,
        name: valueName
    });

    //here where the post for the mailchimp API will be carried out

    this.setState(
        {
            isModalVisible: !this.state.isModalVisible,
            valid: false,
            name: '',
            input: ''

        }
    );
}

Спасибо всем!

Он должен обрабатываться на стороне сервера (firebase и т. д.), А не на стороне клиента (реагировать на собственный)

arufian 05.09.2018 04:18

Я предлагаю использовать API MailChimp внутри облачной функции. Для получения дополнительной информации прочтите следующее: Firestore: firebase.google.com/docs/firestore/extend-with-functions или с базой данных в реальном времени: firebase.google.com/docs/database/extend-with-functions

Philip 05.09.2018 04:19

Очень хороший! Я не думал об этой возможности, я считаю, что это может быть альтернатива. Спасибо!

Jefferson Bruchado 05.09.2018 13:29
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
3
1 636
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

здесь все тихо? В середине некоторых исследований и размышлений, возможная задача для решения проблемы, ниже, чтобы выполнить интеграцию между MailChimp и Firebase для приложения React Native.

Прежде всего, сделанное на основе некоторых исследований, рассматривается как база данных на стороне сервера, поскольку я уже использовал базу данных Firebase Realtime, а затем я решил использовать ее в качестве облачных функций для решения этой проблемы, выполнив облачную функцию, которая является проверка состояния базы данных, и когда оно задано, запускается POST для MailChimp API, вот функция, созданная для этого:

const functions = require('firebase-functions');

\\Code suppressed here

exports.onDataAdded = functions.database.ref('/xxx/{id}').onCreate((snap, context) => {
    const data = snap.val();
    var fetch = require('isomorphic-fetch');
    var btoa = require('btoa');

    console.info(data.email);
    // POST /lists/{list_id}/members
    // Add a new list member

    var MAILCHIMP_API_KEY = 'Key Here';
    var listId = 'Id Here';
    // NOTE: mailchimp's API uri differs depending on your location. us6 is the east coast. 
    var url = 'https://<dc>.api.mailchimp.com/3.0/lists/' + listId + '/members';
    var method = 'POST';
    var headers = {
        'authorization': "Basic " + btoa('randomstring:' + MAILCHIMP_API_KEY),
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    };
    var body = JSON.stringify(
        {
            email_address: data.email,
            status: 'subscribed',
            'language': data.language,
            merge_fields: { FNAME: data.name }
        }
    );

    return fetch(url, {
        method,
        headers,
        body
    }).then(resp => resp.json())
        .then(resp => {
            return console.info(resp)
        })
        .catch(error => {
            throw new Error(error.statusText)
        });
});

С этой функцией, созданной в облачных функциях Firebase, с момента, когда выполняется некоторая вставка базы данных реального времени, запускается тот триггер, который запускает эту функцию.

Спасибо за быстрый ответ!!

Другие вопросы по теме