Как сделать вызов REST API в Marketo, используя ТОЛЬКО Javascript? - PullRequest
0 голосов
/ 24 апреля 2018

Мы пытаемся оценить стоимость файла cookie отслеживания Marketo, чтобы помочь предварительно заполнить формы ресурсов на нашем сайте.

Эта ссылка объясняет, во-первых, как прочитать значение куки, используя Javascript (достаточно просто):

//Function to read value of a cookie
function readCookie(name) {
    var cookiename = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(cookiename) == 0) return c.substring(cookiename.length,c.length);
    }
    return null;
}

//Call readCookie function to get value of user's Marketo cookie
var value = readCookie('_mkto_trk');

А затем объясняется, как взять значение cookie и сделать вызов Marketo с помощью REST API через Ruby:

#NOTE: The _mkto_trk cookie value includes an ampersand and needs to be URL encoded to '%26' in order to be properly accepted by the Marketo endpoint.  

require 'rest_client'
require 'json'

#Build request URL
#Replace AAA-BBB-CCC with your Marketo instance
marketo_instance = "https://AAA-BBB-CCC.mktorest.com"
endpoint = "/rest/v1/leads.json"
#Replace with your access token
auth_token =  "?access_token=" + "cde42eff-aca0-48cf-a1ac-576ffec65a84:ab"
#Replace with filter type and values
filter_type_and_values = "&filterType=cookies&filterValues=id:AAA-BBB-CCC%26token:_mch-marketo.com-1418418733122-51548&fields=cookies,email"
request_url = marketo_instance + endpoint + auth_token + filter_type_and_values

#Make request
response = RestClient.get request_url

#Returns Marketo API response
puts response

Мы не используем Ruby (мы используем Sitecore CMS). Так есть ли способ взять значение cookie, построить URL API Marketo, а затем сделать вызов API REST для Marketo, используя только Javascript?

1 Ответ

0 голосов
/ 25 апреля 2018

Короче говоря, вы НЕ ДОЛЖНЫ получать доступ к REST API через клиентский JavaScript . (Если вы говорите о серверном javascript, node.js, это другой случай).

Прежде всего, хотя технически возможно сделать вызовы API из клиентского javascript с помощью запросов ajax, вам придется предоставить свои секретные ключи API ( Client Id и Client Secret . Это означает, что любой может иметь доступ для чтения / записи к вашим ценным данным, чего вы определенно не хотите.

Во-вторых, поскольку вызовы ajax подчиняются механизму Cross-Origin Resource Sharing (CORS), он будет работать только на стороне клиента, если вы выполните эти запросы с хоста вашей конечной точки API REST (например, : https://123 -ABC-456.mktorest.com ).

...