{"id":14154,"date":"2020-09-12T19:48:13","date_gmt":"2020-09-12T19:48:13","guid":{"rendered":"https:\/\/holypython.com\/?p=14154"},"modified":"2021-03-28T00:42:30","modified_gmt":"2021-03-28T00:42:30","slug":"how-to-automate-twitter-with-python-sendkeys","status":"publish","type":"post","link":"https:\/\/holypython.com\/how-to-automate-twitter-with-python-sendkeys\/","title":{"rendered":"How to Automate Twitter (with Python Sendkeys)"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"14154\" class=\"elementor elementor-14154\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9f14053 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9f14053\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a24a825\" data-id=\"a24a825\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-e1696aa elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e1696aa\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-ae04785\" data-id=\"ae04785\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6457d4b elementor-widget elementor-widget-text-editor\" data-id=\"6457d4b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Photo: Courtesy of Joshua Hoehne<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-88923fe elementor-widget elementor-widget-text-editor\" data-id=\"88923fe\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Twitter is one of the most popular social media channels. The importance of Twitter is that it can be a serious communication tool with serious information sharing. Probably for that reason many businesses, websites, entrepreneurs, thought leaders, experts decide to be active on Twitter despite the noise and inappropriate usage that takes place.<\/p><p>It&#8217;s especially unique for how accessible it makes your target audience or leaders of your industry.<\/p><p>One of the challenges that social media managers face though, is that it can be really tiring and tedious to manage Twitter accounts. We have good news. Although there are already more professional paid alternatives, if you are into Python you too can develop something simple to automate your Twitter activity.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-90d5495 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"90d5495\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ae6d17d\" data-id=\"ae6d17d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6da328f elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"6da328f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Prep (<i>Shortcuts & Disclaimer<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b2db8a8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b2db8a8\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ff98627\" data-id=\"ff98627\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d62b106 elementor-widget elementor-widget-text-editor\" data-id=\"d62b106\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>So, to dive right into it, &#8220;<b>n<\/b>&#8221; is the shortcut key for new tweet in Twitter. Also, <b>Ctrl+Enter <\/b>is for sending the tweet. This makes it so easy. We can tweet by just using those 2 shortcut keys with SendKeys method.<\/p><p>There are many other shortcut keys in Twitter. They pretty much cover every single task you can carry out on the social media network.<\/p><p>Twitter is pretty strict with bots and inappropriate usage so make sure you are following their guidelines and user terms. This article is for educational purposes only. Please use responsibly.<\/p><p>For that reason you might want to load up Twitter first and make sure your connection is not restricted and\/or solve any necessary Captcha questions in advance.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c7402f8 elementor-widget elementor-widget-image\" data-id=\"c7402f8\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"679\" height=\"905\" src=\"https:\/\/holypython.com\/wp-content\/uploads\/2020\/09\/twitter-shortcuts-2.png\" class=\"attachment-full size-full wp-image-14159\" alt=\"\" srcset=\"https:\/\/holypython.com\/wp-content\/uploads\/2020\/09\/twitter-shortcuts-2.png 679w, https:\/\/holypython.com\/wp-content\/uploads\/2020\/09\/twitter-shortcuts-2-225x300.png 225w\" sizes=\"(max-width: 679px) 100vw, 679px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Twitter Keyboard Shortcuts from Twitter Support Webpage<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c4b2be9 elementor-widget elementor-widget-text-editor\" data-id=\"c4b2be9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>You can visit this Twitter page for <a href=\"https:\/\/help.twitter.com\/en\/using-twitter\/how-to-tweet\">more Twitter shortcuts<\/a>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-af9a261 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"af9a261\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Sending a Tweet on Twitter with Python (<i>Sendkeys Method<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-22ab44d elementor-widget elementor-widget-text-editor\" data-id=\"22ab44d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>We need to get started with the necessary libraries. We&#8217;ll use:<\/p><ul><li>webbrowser: To launch default browser<\/li><li>time: To create little delays between keys<\/li><li>win32com.client: To establish shell<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e73728c elementor-widget elementor-widget-image\" data-id=\"e73728c\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"725\" height=\"413\" src=\"https:\/\/holypython.com\/wp-content\/uploads\/2020\/09\/Automated_Tweet.gif\" class=\"attachment-full size-full wp-image-14169\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Twitter Automated Tweeting with Python Demonstration w\/ Send Keys method.<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-be7cfb6 elementor-widget elementor-widget-html\" data-id=\"be7cfb6\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>import webbrowser\r\nimport time\r\nimport win32com.client\r\n<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-092e372 elementor-widget elementor-widget-text-editor\" data-id=\"092e372\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Creating a connection to Windows shell.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-66a5934 elementor-widget elementor-widget-html\" data-id=\"66a5934\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>shell = win32com.client.Dispatch(\"WScript.Shell\")<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-94cf576 elementor-widget elementor-widget-text-editor\" data-id=\"94cf576\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Creating a connection to Windows shell.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-696538a elementor-widget elementor-widget-text-editor\" data-id=\"696538a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Now it makes sense to create a variable which consists of the tweet body. Something like:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f83578 elementor-widget elementor-widget-html\" data-id=\"8f83578\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>tweet = \"\"\"Hello World @World #Coding #Python\"\"\"<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-18bcd2a elementor-widget elementor-widget-text-editor\" data-id=\"18bcd2a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Now, we&#8217;ll launch twitter.com and then create an adequate amount of delay. This delay is important to get right because if the key sequence gets messed up the Python script will fail.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08fd7b4 elementor-widget elementor-widget-html\" data-id=\"08fd7b4\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>webbrowser.open(\"https:\/\/twitter.com\")\r\ntime.sleep(7)\r\n<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-27c46c8 elementor-widget elementor-widget-text-editor\" data-id=\"27c46c8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>And the moment of truth.<\/p><p>All we have to do is:<\/p><ul><li>send &#8220;n&#8221; key for new tweet.<\/li><li>Send the tweet body.<\/li><li>And then, send Ctrl+Enter.<\/li><\/ul><p>Ctrl+Enter can be sent with this syntax: <b>&#8220;^{ENTER}&#8221;. <\/b>You can check out Microsoft&#8217;s Official Documentation regarding Sending Key rules <a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/api\/system.windows.forms.sendkeys.send?redirectedfrom=MSDN&amp;view=netcore-3.1#System_Windows_Forms_SendKeys_Send_System_String_\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p><p>Again we&#8217;re making use of 1 second delays so that Windows and browser can register key strokes properly in the right sequence.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c2be4a2 elementor-widget elementor-widget-html\" data-id=\"c2be4a2\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>### New Tweet Window\r\nshell.SendKeys(\"n\", 0)\r\ntime.sleep(1)\r\n\r\n### Typing the new tweet\r\nshell.SendKeys(tweet, 0)\r\ntime.sleep(1)\r\n\r\n### Sending the new tweet\r\nshell.SendKeys(\"^{ENTER}\", 0)\r\ntime.sleep(1)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1ec6a50 elementor-widget elementor-widget-text-editor\" data-id=\"1ec6a50\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Congratulations. Your first automated tweet is sent! Here is the full code:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b12f4fa elementor-widget elementor-widget-html\" data-id=\"b12f4fa\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>import webbrowser\r\nimport time\r\nimport win32com.client\r\n\r\n### Creating the Shell Connection for Sending Keys\r\nshell = win32com.client.Dispatch(\"WScript.Shell\")\r\n\r\ntweet = \"\"\"Hello World @World #Coding #Python\"\"\"\r\n\r\n### Opening Twitter on Default Browser\r\nwebbrowser.open(\"https:\/\/twitter.com\")\r\ntime.sleep(7)\r\n\r\n### New Tweet Window\r\nshell.SendKeys(\"n\", 0)\r\ntime.sleep(1)\r\n\r\n### Typing the new tweet\r\nshell.SendKeys(tweet, 0)\r\ntime.sleep(1)\r\n\r\n### Sending the new tweet\r\nshell.SendKeys(\"^{ENTER}\", 0)\r\ntime.sleep(1)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-32f3bad elementor-widget elementor-widget-text-editor\" data-id=\"32f3bad\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>You can create an image attachment function with this simple code and placing it at the right order with something like this:<\/p><p>Please note that it&#8217;s missing the keys for image selection, you could create something to paste image paths with <b>Ctrl+V.<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-76e1e09 elementor-widget elementor-widget-html\" data-id=\"76e1e09\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>attach = False\r\nif attach == True:\r\n    shell.SendKeys(\"{TAB}\", 0)\r\n    time.sleep(1)\r\n    shell.SendKeys(\"{ENTER}\", 0)\r\n    time.sleep(1)\r\n    shell.SendKeys(\"{ENTER}\", 0)\r\n    shell.SendKeys(\"^{ENTER}\", 0)\r\n<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5200094 elementor-widget elementor-widget-text-editor\" data-id=\"5200094\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>You can also find the code in Holy Python Github Repository <a href=\"https:\/\/github.com\/holypython\/holypython\/blob\/master\/tutorials\/Automated_Tweets_in_Python_w_SendKeys\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ab7956c elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"ab7956c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Closing & Some Ideas (<i>Attachment, scheduling, gui, multi-emails<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6795be9 elementor-widget elementor-widget-text-editor\" data-id=\"6795be9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>You can also create further delays or take advantage of task scheduling to send multiple tweets at a predefined frequency throughout the day.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-27017f6 elementor-widget elementor-widget-text-editor\" data-id=\"27017f6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li>You can combine this automation with:<a href=\"https:\/\/holypython.com\/how-to-schedule-tasks-with-py-files-python-manual-automated\/\">\u00a0<\/a><ul><li><a href=\"https:\/\/holypython.com\/how-to-schedule-tasks-with-py-files-python-manual-automated\/\">Task Scheduler either manually or automatically with coding<\/a>.<\/li><li><a href=\"https:\/\/holypython.com\/creating-gui-programs-w-python-fast-easy-pysimplegui\/\">Python GUI application<\/a>.<\/li><\/ul><\/li><\/ul><p>Also, there is a Gmail variation of this\u00a0<a href=\"https:\/\/holypython.com\/how-to-send-emails-in-gmail-using-python\/\">code for sending emails from Gmail with Python<\/a> with the same method.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-15475ad elementor-widget elementor-widget-text-editor\" data-id=\"15475ad\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Thanks for checking out this tutorial. We have more tutorials in many different categories <a href=\"https:\/\/holypython.com\/blog\">here<\/a>.<\/p><p>Please share this page if you find it useful.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Photo: Courtesy of Joshua Hoehne Twitter is one of the most popular social media channels. The importance of Twitter is that it can be a serious communication tool with serious information sharing. Probably for that reason many businesses, websites, entrepreneurs, thought leaders, experts decide to be active on Twitter despite the noise and inappropriate usage [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":14157,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[34,52,61],"tags":[],"class_list":["post-14154","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-intermediate","category-tutorials","category-scripting"],"acf":[],"_links":{"self":[{"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/posts\/14154","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/comments?post=14154"}],"version-history":[{"count":0,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/posts\/14154\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/media\/14157"}],"wp:attachment":[{"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/media?parent=14154"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/categories?post=14154"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/tags?post=14154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}