有没有办法通过googlescript在wordpress中添加帖子?

时间:2016-09-28 14:31:04

标签: wordpress google-apps-script

我在googlescript中有一个表单,我可以将用户添加到工作表中。 有没有办法在该代码中实现一些行,以便脚本在wordpress页面上添加帖子? 我通过wp_insert_post读到了它是可能的,但我不知道在我的情况下它是如何工作的。

编辑: 正如斯宾塞建议我尝试通过WP REST API来做到这一点。

以下代码似乎正在运作.............

function httpPostTemplate() {
  // URL for target web API
  var url = 'http://example.de/wp-json/wp/v2/posts';


  // For POST method, API parameters will be sent in the
  // HTTP message payload.
  // Start with an object containing name / value tuples.
  var apiParams = {
    // Relevant parameters would go here
    'param1' : 'value1',
    'param2' : 'value2'   // etc.
  };

  // All 'application/json' content goes as a JSON string.
  var payload = JSON.stringify(apiParams);

  // Construct `fetch` params object
  var params = {
    'method': 'POST',
    'contentType': 'application/json',
    'payload': payload,
    'muteHttpExceptions' : true

  };

  var response = UrlFetchApp.fetch(url, params)

  // Check return code embedded in response.
  var rc = response.getResponseCode();
  var responseText = response.getContentText();
  if (rc !== 200) {
    // Log HTTP Error
    Logger.log("Response (%s) %s",
               rc,
               responseText );
    // Could throw an exception yourself, if appropriate
  }
  else {
    // Successful POST, handle response normally
    Logger.log( responseText );
  }
}

但我收到错误:

  

[16-09-28 21:24:29:475 CEST]回复(401.0)   {"代码":" rest_cannot_create","消息":"抱歉,您不被允许   创建新帖子。","数据":{" status":401}}

意思是:我必须先验证。 我安装了插件:WP REST API - OAuth 1.0a Server 我设置了一个新用户,并获得了一个客户端密钥和客户端用户。 但是从这里我不知道该怎么做:/

3 个答案:

答案 0 :(得分:0)

有可能。 Wordpress有一个REST API。我可以在:

找到
  

http://v2.wp-api.org/

您将使用UrlFetchApp服务访问此API。文档可在以下网址找到:

  

https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app

阅读文档并尝试编写一些代码。你在这里遇到让你感到困惑的代码时会遇到困难,我会更新这个答案。

答案 1 :(得分:0)

谢谢你给我这些重要的链接。 < 3

我安装了WP REST API和OAuth插件。 在文档中写道:

  

启用WP API并激活OAuth服务器插件后   服务器,你需要创建一个“客户端”。这是一个标识符   应用程序,并包括“密钥”和“秘密”,两者都需要   链接到您的网站。

我无法找到如何设置客户端?

根据WP API我的GoogleScriptCode中出现错误:

{"code":"rest_cannot_create","message":"Sorry, you are not allowed to create new posts.","data":{"status":401}}

编辑:我找到了 - 它在用户/应用程序下 我会试着找出来并稍后再回复你。

答案 2 :(得分:0)

您应该在标题中添加身份验证:

var headers = {
  ... ,
  'Authorization' : 'Basic ' + Utilities.base64Encode('USERNAME:PASSWORD'),
};

然后在您的参数中添加标题:

var params = {
  'method': 'POST',
  'headers': headers,
  'payload': JSON.stringify(payload),
  'muteHttpExceptions': true
}

然后使用UrlfetchApp.fetch

var response = UrlFetchApp.fetch("https://.../wp-json/wp/v2/posts/", params)
Logger.log(response);