google-apps-scriptgoogle-sheetspastebingoogle-apps-script-api

Using Google Apps Script and the Pastebin.com API to post a paste


I am trying to make a Pastebin.com paste using Google Apps Script from the spreadsheet script editor. Can anyone tell me what I'm doing wrong?

function postPastebinPost() {
  var options, url, apiKey, payload, response;

  apiKey = <api key goes here>;
  payload = 'Hello World';

  options = {
    'method' : 'post',
    'payload' : payload
  };

  url = 'https://pastebin.com/api/api_post.php'
    + '?api_dev_key=' + apiKey
    + '&api_option=paste'
    + '&api_paste_code=' + encodeURIComponent(payload);

  response = UrlFetchApp.fetch(url, options);
  Logger.log(response);
}

I run this and my log reads Bad API request, invalid api_option. I've searched for solutions but I have not found any.

Documentation:

Pastebin.com API

• Google Apps Script's UrlFetchApp Class


Solution

  • The parameters should be passed in the payload of the POST request.

    function postPastebinPost() {
    
      var apiKey = 'YOUR KEY GOES HERE';
      var text = 'Hello World';
    
      var payload = {
        api_dev_key: apiKey,
        api_option: 'paste',
        api_paste_code:  text
      };
    
      var options = {
        method : 'POST',
        payload: payload
      };
    
      var url = 'https://pastebin.com/api/api_post.php';
    
      var response = UrlFetchApp.fetch(url, options);
      Logger.log(response.getContentText());
    }