Есть ли способ добавить сообщение в wordpress через googlescript?

У меня есть форма в 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) {"code":"rest_cannot_create","message":"Извините, вам не разрешено создавать новые сообщения.","data": {"статус":401}}

Означает: сначала я должен пройти аутентификацию. Я установил плагин: WP REST API — сервер OAuth 1.0a. Я настроил нового пользователя и получил ключ клиента и пользователя клиента. Но отсюда я понятия не имею, что делать :/


person c_ph_r    schedule 28.09.2016    source источник


Ответы (3)


Вы должны добавить свою аутентификацию в заголовок:

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);
person G.Lebret    schedule 13.12.2018

Это возможно. Wordpress имеет REST API. Меня можно найти по адресу:

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

Вы будете использовать службу UrlFetchApp для доступа к этому API. Документацию можно найти по адресу:

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

Прочитайте документы и попробуйте написать код. Если вы застряли, опубликуйте код, который вас здесь смущает, и я обновлю этот ответ.

person Spencer Easton    schedule 28.09.2016
comment
К сожалению, я понятия не имею, как пройти аутентификацию :/ Я обновлю свой текущий код. - person c_ph_r; 28.09.2016

спасибо, что дали мне эти важные ссылки. ‹3

Я установил WP REST API и плагин OAuth. В документации написано:

После того, как на вашем сервере активированы WP API и серверные плагины OAuth, вам необходимо создать «клиент». Это идентификатор приложения, который включает в себя «ключ» и «секрет», необходимые для ссылки на ваш сайт.

Я не мог узнать, как настроить клиент?

В моем GoogleScriptCode в соответствии с API WP я получаю сообщение об ошибке:

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

Редактировать: я нашел его - он находится в разделе «Пользователь/приложение». Я попытаюсь разобраться и вернуться к вам позже.

person c_ph_r    schedule 28.09.2016