Π‘Π»ΠΎΠ³

πŸ‘¨πŸ»β€πŸ« GraphQL query для автоматичСской ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ подписчиков рассылки ΠΈΠ· InstaWP Π² Mailchimp

Leonardo Losoviz
Автор: Leonardo Losoviz Β·

(ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ запись Π±Π»ΠΎΠ³Π° πŸš€ АвтоматичСская ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° подписчиков рассылки ΠΈΠ· InstaWP Π² Mailchimp, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ контСкст этого запроса.)

Π­Ρ‚ΠΎΡ‚ GraphQL query Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ email посСтитСлСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ поставили Π³Π°Π»ΠΎΡ‡ΠΊΡƒ Β«Subscribe to mailing listΒ» Π² InstaWP (ΠΏΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ sandbox-сайта), ΠΈ подписываСт этот email Π½Π° список Mailchimp:

query HasSubscribedToNewsletter {
  hasSubscriberOptIn: _httpRequestHasParam(name: "marketing_optin")
  subscriberOptIn: _httpRequestStringParam(name: "marketing_optin")
  isNotSubscriberOptInNAValue: _notEquals(value1: $__subscriberOptIn, value2: "NA")
  subscribedToNewsletter: _and(values: [$__hasSubscriberOptIn, $__isNotSubscriberOptInNAValue])
    @export(as: "subscribedToNewsletter")
}
 
query MaybeCreateContactOnMailchimp
   @depends(on: "HasSubscribedToNewsletter")
   @include(if: $subscribedToNewsletter)
{
  subscriberEmail: _httpRequestStringParam(name: "email")
  
  mailchimpUsername: _env(name: "MAILCHIMP_API_CREDENTIALS_USERNAME")
    @remove
  mailchimpPassword: _env(name: "MAILCHIMP_API_CREDENTIALS_PASSWORD")
    @remove
  
  mailchimpListMembersJSONObject: _sendJSONObjectItemHTTPRequest(input: {
    url: "https://us7.api.mailchimp.com/3.0/lists/{listCode}/members",
    method: POST,
    options: {
      auth: {
        username: $__mailchimpUsername,
        password: $__mailchimpPassword
      },
      json: {
        email_address: $__subscriberEmail,
        status: "subscribed"
      }
    }
  })
}

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ подписчиков Π² вашСм ΠΏΠ»Π°Π³ΠΈΠ½Π΅ рассылки для WordPress (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Noptin ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΌ).

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ, ΠΊΠ°ΠΊ этот GraphQL query Π΄Π΅Π»Π°Π΅Ρ‚ своё Π΄Π΅Π»ΠΎ.

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ GraphQL query Π½Π° нСзависимыС Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹

GraphQL-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (queries ΠΈ mutations), Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ…. ΠΡƒΠΆΠ½ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ?operationName=... Π² GraphQL-эндпоинтС; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° послСдняя опСрация.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Π΅ΡΡ‚ΡŒ 2 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ query:

  1. HasSubscribedToNewsletter
  2. MaybeCreateContactOnMailchimp

URL Π²Π΅Π±Ρ…ΡƒΠΊΠ° содСрТит ?operationName=MaybeCreateContactOnMailchimp, поэтому ΠΈΠΌΠ΅Π½Π½ΠΎ эта опСрация Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π°.

Благодаря Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ Multiple Query Execution MaybeCreateContactOnMailchimp сначала Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ HasSubscribedToNewsletter, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ @depends:

query MaybeCreateContactOnMailchimp
   @depends(on: "HasSubscribedToNewsletter")
   # ...
{
  #
}

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, MaybeCreateContactOnMailchimp Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° условно β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $subscribedToNewsletter Ρ€Π°Π²Π½ΠΎ true:

query MaybeCreateContactOnMailchimp
   @depends(on: "HasSubscribedToNewsletter")
   @include(if: $subscribedToNewsletter)
{
  #
}

$subscribedToNewsletter β€” это динамичСская пСрСмСнная, экспортированная Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ HasSubscribedToNewsletter:

query HasSubscribedToNewsletter {
  # ...
  subscribedToNewsletter: _and(values: [$__hasSubscriberOptIn, $__isNotSubscriberOptInNAValue])
    @export(as: "subscribedToNewsletter")
}

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, опСрация MaybeCreateContactOnMailchimp Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ поставил Π³Π°Π»ΠΎΡ‡ΠΊΡƒ Β«Subscribe to mailing listΒ».

ВычислСниС Ρ‚ΠΎΠ³ΠΎ, поставил Π»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ

ДокумСнтация ΠΏΠΎ Π²Π΅Π±Ρ…ΡƒΠΊΡƒ InstaWP ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ payload содСрТат ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ поля (срСди ΠΏΡ€ΠΎΡ‡ΠΈΡ…):

  • marketing_optin: Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, поставил Π»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ
  • email: Email посСтитСля

ДокумСнтация лишь поясняСт, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ marketing_optin ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NA, ΠΊΠΎΠ³Π΄Π° Π³Π°Π»ΠΎΡ‡ΠΊΠ° Π½Π΅ установлСна, поэтому Π½Π°ΠΌ придётся Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с этим.

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, поставил Π»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ, Π»ΠΎΠ³ΠΈΠΊΠ° Ρ‚Π°ΠΊΠΎΠ²Π°:

  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, присутствуСт Π»ΠΈ ΠΏΠΎΠ»Π΅ marketing_optin, ΠΈ
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ Ρ€Π°Π²Π½ΠΎ NA

Π­Ρ‚ΠΎ вычисляСтся Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ HasSubscribedToNewsletter. Π’ΠΎΡ‚ ΠΎΠ½Π° с коммСнтариями, ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‰ΠΈΠΌΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ каТдая строка query:

query HasSubscribedToNewsletter {
 
  # Check if field `marketing_optin` is present
  hasSubscriberOptIn: _httpRequestHasParam(name: "marketing_optin")
 
  # Get the value of field `marketing_optin`
  subscriberOptIn: _httpRequestStringParam(name: "marketing_optin")
 
  # Check if the value of the field is not "NA"
  isNotSubscriberOptInNAValue: _notEquals(value1: $__subscriberOptIn, value2: "NA")
 
  # Perform an AND operation: field present && value != "NA"
  subscribedToNewsletter: _and(values: [$__hasSubscriberOptIn, $__isNotSubscriberOptInNAValue])
    
    # Export the result under dynamic variable $subscribedToNewsletter
    @export(as: "subscribedToNewsletter")
}

Π’ этом query Π΅ΡΡ‚ΡŒ нСсколько интСрСсных Π²Π΅Ρ‰Π΅ΠΉ.

Global Fields

Π’Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ поля, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с _? А ΠΈΠΌΠ΅Π½Π½ΠΎ:

  • _httpRequestHasParam
  • _httpRequestStringParam
  • _notEquals
  • _and

Π­Ρ‚ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ поля β€” поля, доступныС Π²ΠΎ всСх Ρ‚ΠΈΠΏΠ°Ρ… схСмы GraphQL. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π° Π½Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ ΠΏΠΎ соглашСнию Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с _.

Field to Input

Π’Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с $__? А ΠΈΠΌΠ΅Π½Π½ΠΎ:

  • $__subscriberOptIn
  • $__hasSubscriberOptIn
  • $__isNotSubscriberOptInNAValue

Π­Ρ‚ΠΎ динамичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, содСрТащиС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля, объявлСнного ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. НапримСр, пСрСмСнная $__subscriberOptIn содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля subscriberOptIn, объявлСнного Π²Ρ‹ΡˆΠ΅.

Π­Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, прСдоставляСмая Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ Field to Input, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠ³ΠΎ поля Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… для Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ поля. ИмСнно Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ GraphQL query.

Π’ query ΠΏΠΎΠ»Π΅ isNotSubscriberOptInNAValue провСряСт, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π½Π΅Π΅ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ поля subscriberOptIn Π½Π΅ Ρ€Π°Π²Π½ΠΎ "NA", Π° subscribedToNewsletter вычисляСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ AND, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΡƒΡŽ значСния ΠΏΠΎΠ»Π΅ΠΉ hasSubscriberOptIn ΠΈ isNotSubscriberOptInNAValue.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Mailchimp

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ MaybeCreateContactOnMailchimp содСрТит Π»ΠΎΠ³ΠΈΠΊΡƒ для извлСчСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· payload ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° API Mailchimp для добавлСния email Π² список рассылки.

Π’ΠΎΡ‚ опСрация с коммСнтариями, ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‰ΠΈΠΌΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ каТдая строка:

query MaybeCreateContactOnMailchimp
   @depends(on: "HasSubscribedToNewsletter")
   @include(if: $subscribedToNewsletter)
{
  # Extract form field `email` from the body of the request
  subscriberEmail: _httpRequestStringParam(name: "email")
  
  # Obtain Mailchimp credentials, defined in wp-config.php
  mailchimpUsername: _env(name: "MAILCHIMP_API_CREDENTIALS_USERNAME")
    # Do not print the credentials in the response
    @remove
  mailchimpPassword: _env(name: "MAILCHIMP_API_CREDENTIALS_PASSWORD")
    @remove
  
  # Connect to Mailchimp to add a new member to the list
  mailchimpListMembersJSONObject: _sendJSONObjectItemHTTPRequest(input: {
    url: "https://us7.api.mailchimp.com/3.0/lists/{listCode}/members",
    method: POST,
    options: {
      # Provide credentials to connect to the API
      auth: {
        username: $__mailchimpUsername,
        password: $__mailchimpPassword
      },
      # Provide form data
      json: {
        email_address: $__subscriberEmail,
        status: "subscribed"
      }
    }
  })
}

Рассмотрим возмоТности, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² этом query.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния

Нам Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ наши ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ API Mailchimp. Однако ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² GraphQL query, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π³Π΄Π΅-Ρ‚ΠΎ ΡƒΡ‚Π΅Ρ‡ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π»ΠΎΠ³).

ИмСнно поэтому ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ глобальноС ΠΏΠΎΠ»Π΅ _env (прСдоставляСмоС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ PHP Constants and Environment via Schema) для чтСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния ΠΈΠ»ΠΈ PHP-константы, вмСстС с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ @remove (прСдоставляСмой Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ Field Response Removal), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ наши ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² wp-config.php:

define( 'MAILCHIMP_API_CREDENTIALS_USERNAME', '{ username }' );
define( 'MAILCHIMP_API_CREDENTIALS_PASSWORD', '{ password }' );

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° HTTP-запроса Π² Mailchimp

ПослСднСй Ρ‡Π°ΡΡ‚ΡŒΡŽ Π»ΠΎΠ³ΠΈΠΊΠΈ являСтся ΠΏΠΎΠ»Π΅ _sendJSONObjectItemHTTPRequest, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ отправляСт HTTP-запрос ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ сСрвису.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ API Mailchimp, ΠΏΠΎΠ»Π΅ mailchimpListMembersJSONObject прСдоставляСт Π΄Π°Π½Π½Ρ‹Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для REST API-эндпоинта Mailchimp, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ добавлСнию участника Π² список Mailchimp:

  • ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запрос POST
  • Π­Π½Π΄ΠΏΠΎΠΈΠ½Ρ‚: https://{subdomain}.api.mailchimp.com/3.0/lists/{listCode}/members
  • Π’Π΅Π»ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ поля email_address ΠΈ status

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Π±Ρ…ΡƒΠΊΠ° для взаимодСйствия с Π»ΡŽΠ±Ρ‹ΠΌ API

GraphQL query Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ пСрСсылаСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· InstaWP Π² Mailchimp.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Ρƒ ΠΆΠ΅ идСю для любой Π½ΡƒΠΆΠ½ΠΎΠΉ Π²Π°ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ: извлСкая Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ исходного сСрвиса (любого), адаптируя ΠΈΡ… ΠΈ отправляя Π² ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ сСрвис (любой).

Π£Π΄Π°Ρ‡ΠΈ!


ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° Π½Π°ΡˆΡƒ рассылку

Π‘ΡƒΠ΄ΡŒΡ‚Π΅ Π² курсС всСх ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Gato GraphQL.