Import Tweet Action

Updated 07162022-132808


JS

// setup and request credentials
let credential = Credential.create("TwitterV2", "Enter your Twitter credentials");

credential.addTextField("username", "Twitter username");
credential.addPasswordField("token", "Twitter API Bearer token");
credential.authorize();

const uname = credential.getValue("username");
const token = credential.getValue("token");

let selected = editor.getSelectedRange()[1] > 0 ? editor.getSelectedText() : editor.getText();

var id = selected.substring(selected.lastIndexOf('/') + 1);

let baseURL = `https://api.twitter.com/2/tweets`;

var params = {"ids": id, "expansions": "geo.place_id,attachments.media_keys,entities.mentions.username", "tweet.fields": "created_at,text,referenced_tweets,attachments,geo,entities,context_annotations,conversation_id,reply_settings", "user.fields": "username,verified,profile_image_url,location,url,description", "media.fields": "url", "place.fields": "geo"};

var http = HTTP.create();

var response = http.request({
    "url": baseURL,
    "method": "GET",
    "headers": {
		"Authorization" : "Bearer " + token,
    },
    "parameters": params,
});

if (response.statusCode == 200 || response.statusCode == 201) {
    let data = JSON.parse(response.responseText);
    let image = data.data[0].attachments.media[0].url;
    let d = Draft.create();
    d.content = data;
    d.update();
    editor.load(d);
    console.log("Tweet retrieved:" + data);
    app.setClipboard(response.responseText);
}

else {
    console.log("Error: " + response.error);
    context.fail();
}	

Example Output

{"data":[{"reply_settings":"everyone","text":"In the latest iOS beta you can now try out 2 GPT-3-powered text generation actions:\n\n⚙️ Generate Text\n✏️ Edit Text\n\nThis let’s you do some truly ✨magical✨ things  - from creative writing & language translations to unstructured data parsing & sentiment analysis. https://t.co/OyiQuzCCIi","context_annotations":[{"domain":{"id":"47","name":"Brand","description":"Brands and Companies"},"entity":{"id":"10026364281","name":"Apple"}},{"domain":{"id":"47","name":"Brand","description":"Brands and Companies"},"entity":{"id":"10026364281","name":"Apple"}},{"domain":{"id":"48","name":"Product","description":"Products created by Brands.  Examples: Ford Explorer, Apple iPhone."},"entity":{"id":"10044903039","name":"Apple - iOS"}}],"id":"1546539867634532352","entities":{"urls":[{"start":270,"end":293,"url":"https://t.co/OyiQuzCCIi","expanded_url":"https://twitter.com/ToolboxProApp/status/1546539867634532352/photo/1","display_url":"pic.twitter.com/OyiQuzCCIi","media_key":"3_1546539861980717063"},{"start":270,"end":293,"url":"https://t.co/OyiQuzCCIi","expanded_url":"https://twitter.com/ToolboxProApp/status/1546539867634532352/photo/1","display_url":"pic.twitter.com/OyiQuzCCIi","media_key":"3_1546539862114934784"},{"start":270,"end":293,"url":"https://t.co/OyiQuzCCIi","expanded_url":"https://twitter.com/ToolboxProApp/status/1546539867634532352/photo/1","display_url":"pic.twitter.com/OyiQuzCCIi","media_key":"3_1546539862542749696"},{"start":270,"end":293,"url":"https://t.co/OyiQuzCCIi","expanded_url":"https://twitter.com/ToolboxProApp/status/1546539867634532352/photo/1","display_url":"pic.twitter.com/OyiQuzCCIi","media_key":"3_1546539863150829574"}]},"attachments":{"media_keys":["3_1546539861980717063","3_1546539862114934784","3_1546539862542749696","3_1546539863150829574"]},"created_at":"2022-07-11T17:00:12.000Z","conversation_id":"1546539867634532352"}],"includes":{"media":[{"media_key":"3_1546539861980717063","type":"photo","url":"https://pbs.twimg.com/media/FXZpz4BXoAc0FC4.jpg"},{"media_key":"3_1546539862114934784","type":"photo","url":"https://pbs.twimg.com/media/FXZpz4hXoAA6L4W.jpg"},{"media_key":"3_1546539862542749696","type":"photo","url":"https://pbs.twimg.com/media/FXZpz6HXkAAoeNi.jpg"},{"media_key":"3_1546539863150829574","type":"photo","url":"https://pbs.twimg.com/media/FXZpz8YWIAYReII.jpg"}]}}