javascript - 如何仅使用 Javascript 对 Marketo 进行 REST API 调用?

标签 javascript marketo

我们正在尝试读取 Marketo 跟踪 cookie 的值,以帮助在我们的网站上预填写门控 Assets 表格。

This link首先解释如何使用 Javascript 读取 cookie 的值(足够简单):

//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 的值并通过 Ruby 使用 REST API 调用 Marketo:

#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 的值,构建 Marketo API URL,然后仅使用 Javascript 对 Marketo 进行 REST API 调用?

最佳答案

简而言之,您不应该通过客户端 JavaScript 访问 REST API。 (如果你谈论服务器端 javascript、node.js,那是另一种情况)。

首先,虽然从技术上讲,可以使用 ajax 请求从客户端 javascript 进行 API 调用,您必须公开您的 secret API key (客户端 ID客户端 secret 。这意味着任何人都可以读取/写入您的宝贵数据,这是您绝对不想要的。

其次,由于 ajax 调用受 Cross-Origin Resource Sharing (CORS) 机制的约束,因此只有当您从 REST API 端点的主机(例如: https://123-ABC-456.mktorest.com )运行这些请求时,它才可以在客户端工作。

关于javascript - 如何仅使用 Javascript 对 Marketo 进行 REST API 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50003936/

相关文章:

javascript - Express:是否可以绕过静态文件的 session ?

javascript - 你什么时候选择在页面底部而不是顶部加载你的javascript?

c# - 将日期时间从 json 转换为可读格式

javascript - Marketo 隐藏字段更新

java - 有没有办法使用 Marketo REST API 从 csv 文件导入自定义对象数据?

javascript - 一个 f.select 正在影响同一表单中的另一个 f.select 吗? (不需要)

javascript - Marketo munchkin.js 调用间歇性地没有返回任何响应。 (CORS)

javascript - 检测何时通过 JavaScript 加载了 Marketo 嵌入表单?

javascript - React项目中如何集成JS外部资源(Marketo)

javascript - FabricJS:垂直对齐文本中心