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

brtdzjyr  于 2022-12-03  发布在  WordPress
关注(0)|答案(4)|浏览(137)

我在googlescript中有一个表单,我可以在表单中添加用户。有没有办法在代码中实现一些行,这样脚本就可以在wordpress页面上添加一个帖子?我读到过通过wp_insert_post可以实现,但我不知道在我的情况下是如何实现的。
编辑:正如Spencer建议的那样,我尝试通过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”,“消息”:“抱歉,您不允许创建新帖子。",“数据”:{“状态”:401}}
意思是:我必须先认证。我安装了插件:WP REST API - OAuth 1.0a服务器我设置了一个新用户,并得到了一个客户端密钥和客户端用户。但从这里我不知道该怎么做:/

dgiusagp

dgiusagp1#

这是可能的。WordPress有一个REST API。我可以找到:
http://v2.wp-api.org/
您将使用UrlFetchApp服务访问此API。文档位于:
https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app
阅读文档并尝试编写一些代码。如果你遇到了麻烦,请在这里发布让你困惑的代码,我会更新这个答案。

kx5bkwkv

kx5bkwkv2#

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

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);
1szpjjfi

1szpjjfi3#

您需要通过基本身份验证,如下所示:

// Construct `fetch` params object
  var params = {
    'method': 'POST',
    'contentType': 'application/json',
    'payload': payload,
    'muteHttpExceptions' : true,
    "headers" : {
       "Authorization" : "Basic " + Utilities.base64Encode(username + ":" + password)+"",
       "cache-control": "no-cache"
     }
  };
kxe2p93d

kxe2p93d4#

谢谢你给我这些重要的链接。〈3
我安装了WP REST API和OAuth插件。在文档中写:
一旦你在你的服务器上激活了WP API和OAuth服务器插件,你就需要创建一个“客户端”。这是应用程序的标识符,包括“密钥”和“秘密”,都需要链接到你的网站。
我找不到如何设置客户端?
在我的GoogleScriptCode根据WP API我得到错误:

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

编辑:我找到了它-它在用户/应用程序下,我会试着弄清楚它,稍后再给你回复。

相关问题