Action
Post to Micro.blog (w/Categories)
Posts to Micro.blog hosted blogs and gives the user the option to include a title and categories in post.
For more information on the action, please see this post.
Steps
-
script
// Post to Micro.blog Hosted Blog var credential = Credential.create("Micro.blog", "Manton Reece's Micro.blog blogging platform"); credential.addPasswordField("apptoken", "App Token"); credential.authorize(); var appToken = credential.getValue("apptoken"); var endpoint = "https://micro.blog/micropub" // Gets a category list from your Micro.blog account function getCategories() { var req = HTTP.create(); var catRequest = req.request({ "url": endpoint + "?q=category", "method": "GET", "headers": { "Authorization": "Bearer " + appToken } }); console.log("Category Response: " + catRequest.statusCode); if (catRequest.statusCode != 200 && catRequest.statusCode != 202) { context.fail(); } else { var json = JSON.parse(catRequest.responseText); var catArray = json.categories; return catArray } } // Creates the JSON Data to send to the MicroPub server based on a series of prompts function buildRequest(categories) { var data = { "h": "entry" } var p = Prompt.create(); p.title = "Micro.blog Post"; p.message = "Select Posting Options"; p.addSwitch("title", "Include Title With Post", false); if (categories.length > 0) { p.addSelect("categories", "Categories", categories, [], true); } p.addButton("Done"); var promptResponse = p.show(); if (promptResponse == false) { context.fail("User cancelled action"); } var titleBool = p.fieldValues["title"]; var categoryList = p.fieldValues["categories"]; if (titleBool == true) { var titleObj = draft.processTemplate("[[safe_title]]"); data.name = titleObj var content = draft.processTemplate("[[body]]"); data.content = content } else { var content = draft.content; data.content = content } if (categoryList) { data.category = categoryList } var actionData = [promptResponse, data] return actionData; } var fullCategories = getCategories(); var dataBuild = buildRequest(fullCategories); if (dataBuild[0] == true) { //create and post HTTP request var http = HTTP.create(); var response = http.request({ "url": endpoint, "method": "POST", "encoding": "form", "data": dataBuild[1], "headers": { "Authorization": "Bearer " + appToken } }); console.log("Response: " + response.statusCode); if (response.statusCode != 200 && response.statusCode != 202) { context.fail(); } }
Options
-
After Success Default Notification Info Log Level Info
Items available in the Drafts Directory are uploaded by community members. Use appropriate caution reviewing downloaded items before use.