简体   繁体   English

Zapier JS动作获取Klout分数

[英]Zapier JS Action to Fetch Klout Scores

I'm trying to create a Java Script Code Action on Zapier to fetch Klout Scores for any given Twitter user name... 我正在尝试在Zapier上创建Java脚本代码操作以获取任何给定Twitter用户名的Klout分数...

I've realized that this needs to be done in 2 stages: 我已经意识到,这需要分两个阶段完成:

1) First get the Klout ID for any Twitter screen_name: 1)首先获取任何Twitter screen_name的Klout ID:

http://api.klout.com/v2/identity.json/twitter?screenName="+screen_name+"&key="+klout_apikey"

Klout replies back to that with JSon: Klout使用JSon回复了它:

{"id":"85568398087870011","network":"ks"}

2) second get the Klout score for that Klout id: 2)其次获得该Klout ID的Klout分数:

http://api.klout.com/v2/user.json/"+klout.id+"/score?key="+klout_apikey"

Klout replies back to this with JSon: Klout使用JSon回复了此问题:

{"score":65.68382904221806,"scoreDelta":{"dayChange":-0.03663891859041257,"weekChange":-0.5495711661078815,"monthChange":-1.4045672671990417},"bucket":"60-69"}

Of course, what I need is the "score":65.68382904221806 object of the JSon reply array. 当然,我需要的是JSon回复数组的“ score”:65.68382904221806对象。

I use these following JS functions proposed by @KayCee: 我使用@KayCee提出的以下JS函数:

 var klout_apikey = '<my klout api key>';

 fetch("http://api.klout.com/v2/identity.json/twitter?screenName="+screen_name+"&key="+klout_apikey")
   .then(function(res) {
    return res.json();
  })
  .then(function(klout) {
    console.log(klout);
    if(klout.id) {
        return fetch("http://api.klout.com/v2/user.json/"+klout.id+"/score?key="+klout_apikey")
    }
  }).then(function(res) {
    return res.json();
  }).then(function(body) {
    // console.log(body.score);
    //Here is where you are telling Zapier what you want to output.
    callback(null, body.score)
  }).catch(callback); //Required by Zapier for all asynchronous functions.

In the "input data" section of the Zapier code action i pass the screen_name as a variable: 在Zapier代码操作的“输入数据”部分中,我将screen_name作为变量传递:

screen_name: [the twitter handle]

What I get back is the following error message: 我得到的是以下错误消息:

SyntaxError: Invalid or unexpected token

What is the error that you see? 您看到的错误是什么? You could do this by simply using the fetch client. 您可以通过简单地使用fetch客户端来做到这一点。 You might want to remove the variable declarations before adding this to the code step. 您可能需要先删除变量声明,然后再将其添加到代码步骤中。

var inputData = {'screen_name': 'jtimberlake'}
//Remove the line above before pasting in the Code step. You will need to configure it in the Zap.

var klout_apikey = '2gm5rt3hsdsdrzgvnskmgm'; //Not a real key

fetch("http://api.klout.com/v2/identity.json/twitter?screenName="+inputData.screen_name+"&key="+klout_apikey)
  .then(function(res) {
    return res.json();
  })
  .then(function(body) {
    console.log(body);
    if(body.id) {
        return fetch("http://api.klout.com/v2/user.json/"+body.id+"/score?key="+klout_apikey)
    }
  }).then(function(res) {
    return res.json();
  }).then(function(body) {
    console.log(body);
    //Here is where you are telling Zapier what you want to output.
    callback(null, body)
  }).catch(callback); //Required by Zapier for all asynchronous functions.

Refer to their documentation here - https://zapier.com/help/code/#introductory-http-example 请在此处参考其文档-https: //zapier.com/help/code/#introductory-http-example

Also refer to their Store client which allows you to store values (for cache) - https://zapier.com/help/code/#storeclient-javascript 另请参阅其“ Store客户端,该客户端可让您存储值(用于缓存) -https://zapier.com/help/code/#storeclient-javascript

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM