从Photoshop脚本调用Google Apps Script Rest API

时间:2016-06-17 19:11:50

标签: json google-apps-script photoshop

我正在开发Photoshop和Google Apps Script组合API。我在Google Apps脚本中创建了API网址,但我无法在我的Photoshop脚本中创建并获得结果。

This is the complete URL,点击此按钮即可获得JSON结果(意大利世界杯)。

    var ui = require("ui");
    var http = require("http");

   var api = "https://script.google.com/macros/s/AKfycbza_1YFg7Gux0qs_zRnrjNoIumNA-pTlAzUYKor9DIYTEWVRQjf/exec";


function makeGet(url, input, token){
   var req = new http.HTTPRequest("GET", api+"?action=get&prodid=1934 World Cup Italy");
   req.header("Content-Type", "application/x-www-form-urlencoded");
   var res = req.do();
   if(res.status != 200){
     // alert('ddd');
    return (res.body);
    }
 //  $.writeln(res.status == 200);
 //  $.writeln(res.body);
   return JSON.parse(res.body);
}

如何从Photoshop脚本中调用此API?

1 个答案:

答案 0 :(得分:0)

在使用Photoshop和API调用时,您会遇到一些障碍,但是下面的信息将使您走上正确的道路。

首先,Photoshop仅公开用于TCP的Socket对象。以下是estk.aenhancers.com JavaScript工具指南CC:http://estk.aenhancers.com/6%20-%20External%20Communication%20Tools/socket-object.html?highlight=socket

中有关如何使用Socket对象的代码段。
reply = "";
conn = new Socket;

// access Adobe's home page
if (conn.open ("www.adobe.com:80")) {

    // send a HTTP GET request
    conn.write ("GET /index.html HTTP/1.0\n\n");

    // and read the server's reply
    reply = conn.read(999999);

    conn.close();
}

第二,Photoshop没有对JSON.parse / JSON.stringify的本机支持,因此您需要一个外部库。我建议使用tonton-pixel的JSON Action Manager,特别是jamJSON:http://www.tonton-pixel.com/JSON%20Action%20Manager/jsDoc/symbols/jamJSON.html

希望这会有所帮助!