{"id":12359,"date":"2023-07-11T10:00:46","date_gmt":"2023-07-11T08:00:46","guid":{"rendered":"https:\/\/developer-blog.net\/?p=12359"},"modified":"2023-07-10T20:08:45","modified_gmt":"2023-07-10T18:08:45","slug":"threads-api","status":"publish","type":"post","link":"https:\/\/developer-blog.net\/threads-api\/","title":{"rendered":"Threads API"},"content":{"rendered":"<p>Die erste inoffizielle <strong>Threads API<\/strong> ist auf GitHub aufgetaucht. Damit kann man gleich mal sein eigenes Plugin f\u00fcr Threads erstellen.<\/p>\n<p><a href=\"https:\/\/developer-blog.net\/wp-content\/uploads\/2023\/07\/threads-api.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12360\" src=\"https:\/\/developer-blog.net\/wp-content\/uploads\/2023\/07\/threads-api.jpg\" alt=\"Threads Api\" width=\"1000\" height=\"561\" srcset=\"https:\/\/developer-blog.net\/wp-content\/uploads\/2023\/07\/threads-api.jpg 1000w, https:\/\/developer-blog.net\/wp-content\/uploads\/2023\/07\/threads-api-300x168.jpg 300w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/p>\n<h2>Threads API<\/h2>\n<p>Gerade einmal 5 Tage alt ist der neue Social Media Micro Blogging Dienst von Meta &#8222;Threads&#8220; und schon findet man auf <a href=\"https:\/\/github.com\/junhoyeo\/threads-api\">GitHub eine API<\/a>. Ein findiger User hat durch reverse engineering die API angezapft, d.h. in k\u00fcrze werden die ersten Tools folgen, hoffentlich auch bald f\u00fcr WordPress.<\/p>\n<h3>Die API<\/h3>\n<p>Der Source Code auf GitHub ist ein Node.js\/TypeScript Client. Obwohl das Projekt noch recht rudiment\u00e4r ist lassen sich damit schon vom eigenen Client aus Threads erstellen. Damit ist die Basis geschaffen. Ich bin mir sicher weitere Funktionen folgen. Der Beispiel Code zeigt eindrucksvoll wie einfach man eigene Threads erstellen kann:<\/p>\n<pre>import { ThreadsAPI } from 'threads-api';\r\n\r\nconst main = async () =&gt; {\r\n  const threadsAPI = new ThreadsAPI({\r\n    username: 'devblognet', \/\/ Your username\r\n    password: 'PASSWORD',   \/\/ Your password\r\n  });\r\n\r\n  await threadsAPI.publish({\r\n    text: 'Hello World',\r\n  });\r\n};\r\n\r\nmain();<\/pre>\n<p>Was passiert hier? Man erstellt eine ThreadsAPI Instanz unter Angabe seiner eigenen Kontodaten (Benutzername und Passwort). Danach kann man m\u00fchelos mit der Methode publish und dem Parameter text eigene Threads posten.<\/p>\n<p>Aktuell funktioniert das, bin gespannt ob Meta da noch etwas dagegen hat, eine eigene API aufsetzt, oder der Community den Spa\u00df erlaubt.<\/p>\n<h3>WordPress Plugin<\/h3>\n<p>F\u00fcr meine Zwecke w\u00e4re die Funktionalit\u00e4t des Clients bereits ausreichend. Ich k\u00f6nnte f\u00fcr jeden ver\u00f6ffentlichten Artikel auf meinem Threads Profil eine Benachrichtigung f\u00fcr meine Follower mit einem Link auf den Artikel ver\u00f6ffentlichen. Ich denke deshalb bereits \u00fcber ein eigenes Plugin nach. Mal sehen, PHP habe ich schon l\u00e4nger nicht verwendet&#8230;<\/p>\n<h2>Fazit<\/h2>\n<p>Es ist unglaublich wie schnell manche Entwickler auf neue Apps und Services reagieren. Reverse Engineeren einer App ist kein Spa\u00df, umso mehr freut es mich, dass es bereits so fr\u00fch ein Plugin gibt. Mit dem Wissen lassen sich schnell andere Clients und Plugins erstellen. Sobald es weitere Infos dazu gibt werde ich dar\u00fcber berichten.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die erste inoffizielle Threads API ist auf GitHub aufgetaucht. Damit kann man gleich mal sein eigenes Plugin f\u00fcr Threads erstellen. Threads API Gerade einmal 5 Tage alt ist der neue Social Media Micro Blogging&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":12360,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[63],"tags":[],"class_list":["post-12359","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Threads API - Developer-Blog<\/title>\n<meta name=\"description\" content=\"Auf GitHub ist ein Projekt mit einer reverse engineered Threads API aufgetaucht. Mit Node.js\/TypeScript lassen sich bereits Threads anlegen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/developer-blog.net\/threads-api\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Threads API - Developer-Blog\" \/>\n<meta property=\"og:description\" content=\"Auf GitHub ist ein Projekt mit einer reverse engineered Threads API aufgetaucht. Mit Node.js\/TypeScript lassen sich bereits Threads anlegen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/developer-blog.net\/threads-api\/\" \/>\n<meta property=\"og:site_name\" content=\"Developer-Blog\" \/>\n<meta property=\"article:author\" content=\"Developer-Blog\/536949113033287\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-11T08:00:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/developer-blog.net\/wp-content\/uploads\/2023\/07\/threads-api.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"561\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Werner Ziegelwanger\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Werner Ziegelwanger\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"2\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/developer-blog.net\\\/threads-api\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/developer-blog.net\\\/threads-api\\\/\"},\"author\":{\"name\":\"Werner Ziegelwanger\",\"@id\":\"https:\\\/\\\/developer-blog.net\\\/#\\\/schema\\\/person\\\/b6f55a78f44b02d24b974d504a770f41\"},\"headline\":\"Threads API\",\"datePublished\":\"2023-07-11T08:00:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/developer-blog.net\\\/threads-api\\\/\"},\"wordCount\":301,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/developer-blog.net\\\/threads-api\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/developer-blog.net\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/threads-api.jpg\",\"articleSection\":[\"JavaScript\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/developer-blog.net\\\/threads-api\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/developer-blog.net\\\/threads-api\\\/\",\"url\":\"https:\\\/\\\/developer-blog.net\\\/threads-api\\\/\",\"name\":\"Threads API - Developer-Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/developer-blog.net\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/developer-blog.net\\\/threads-api\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/developer-blog.net\\\/threads-api\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/developer-blog.net\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/threads-api.jpg\",\"datePublished\":\"2023-07-11T08:00:46+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/developer-blog.net\\\/#\\\/schema\\\/person\\\/b6f55a78f44b02d24b974d504a770f41\"},\"description\":\"Auf GitHub ist ein Projekt mit einer reverse engineered Threads API aufgetaucht. Mit Node.js\\\/TypeScript lassen sich bereits Threads anlegen.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/developer-blog.net\\\/threads-api\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/developer-blog.net\\\/threads-api\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/developer-blog.net\\\/threads-api\\\/#primaryimage\",\"url\":\"https:\\\/\\\/developer-blog.net\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/threads-api.jpg\",\"contentUrl\":\"https:\\\/\\\/developer-blog.net\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/threads-api.jpg\",\"width\":1000,\"height\":561,\"caption\":\"Threads Api\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/developer-blog.net\\\/threads-api\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/developer-blog.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Threads API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/developer-blog.net\\\/#website\",\"url\":\"https:\\\/\\\/developer-blog.net\\\/\",\"name\":\"Developer-Blog\",\"description\":\"Webdesign, Administration, Raspberry Pi, Open Source.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/developer-blog.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/developer-blog.net\\\/#\\\/schema\\\/person\\\/b6f55a78f44b02d24b974d504a770f41\",\"name\":\"Werner Ziegelwanger\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eff0ce687362c771b5d999f18ba69d981981d432d1284d3dce3f2ba303e98c3a?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eff0ce687362c771b5d999f18ba69d981981d432d1284d3dce3f2ba303e98c3a?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eff0ce687362c771b5d999f18ba69d981981d432d1284d3dce3f2ba303e98c3a?s=96&d=retro&r=g\",\"caption\":\"Werner Ziegelwanger\"},\"description\":\"Google+\",\"sameAs\":[\"Developer-Blog\\\/536949113033287\",\"https:\\\/\\\/x.com\\\/DevBlogNet\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Threads API - Developer-Blog","description":"Auf GitHub ist ein Projekt mit einer reverse engineered Threads API aufgetaucht. Mit Node.js\/TypeScript lassen sich bereits Threads anlegen.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/developer-blog.net\/threads-api\/","og_locale":"de_DE","og_type":"article","og_title":"Threads API - Developer-Blog","og_description":"Auf GitHub ist ein Projekt mit einer reverse engineered Threads API aufgetaucht. Mit Node.js\/TypeScript lassen sich bereits Threads anlegen.","og_url":"https:\/\/developer-blog.net\/threads-api\/","og_site_name":"Developer-Blog","article_author":"Developer-Blog\/536949113033287","article_published_time":"2023-07-11T08:00:46+00:00","og_image":[{"width":1000,"height":561,"url":"https:\/\/developer-blog.net\/wp-content\/uploads\/2023\/07\/threads-api.jpg","type":"image\/jpeg"}],"author":"Werner Ziegelwanger","twitter_misc":{"Verfasst von":"Werner Ziegelwanger","Gesch\u00e4tzte Lesezeit":"2\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/developer-blog.net\/threads-api\/#article","isPartOf":{"@id":"https:\/\/developer-blog.net\/threads-api\/"},"author":{"name":"Werner Ziegelwanger","@id":"https:\/\/developer-blog.net\/#\/schema\/person\/b6f55a78f44b02d24b974d504a770f41"},"headline":"Threads API","datePublished":"2023-07-11T08:00:46+00:00","mainEntityOfPage":{"@id":"https:\/\/developer-blog.net\/threads-api\/"},"wordCount":301,"commentCount":0,"image":{"@id":"https:\/\/developer-blog.net\/threads-api\/#primaryimage"},"thumbnailUrl":"https:\/\/developer-blog.net\/wp-content\/uploads\/2023\/07\/threads-api.jpg","articleSection":["JavaScript"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/developer-blog.net\/threads-api\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/developer-blog.net\/threads-api\/","url":"https:\/\/developer-blog.net\/threads-api\/","name":"Threads API - Developer-Blog","isPartOf":{"@id":"https:\/\/developer-blog.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/developer-blog.net\/threads-api\/#primaryimage"},"image":{"@id":"https:\/\/developer-blog.net\/threads-api\/#primaryimage"},"thumbnailUrl":"https:\/\/developer-blog.net\/wp-content\/uploads\/2023\/07\/threads-api.jpg","datePublished":"2023-07-11T08:00:46+00:00","author":{"@id":"https:\/\/developer-blog.net\/#\/schema\/person\/b6f55a78f44b02d24b974d504a770f41"},"description":"Auf GitHub ist ein Projekt mit einer reverse engineered Threads API aufgetaucht. Mit Node.js\/TypeScript lassen sich bereits Threads anlegen.","breadcrumb":{"@id":"https:\/\/developer-blog.net\/threads-api\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/developer-blog.net\/threads-api\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/developer-blog.net\/threads-api\/#primaryimage","url":"https:\/\/developer-blog.net\/wp-content\/uploads\/2023\/07\/threads-api.jpg","contentUrl":"https:\/\/developer-blog.net\/wp-content\/uploads\/2023\/07\/threads-api.jpg","width":1000,"height":561,"caption":"Threads Api"},{"@type":"BreadcrumbList","@id":"https:\/\/developer-blog.net\/threads-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/developer-blog.net\/"},{"@type":"ListItem","position":2,"name":"Threads API"}]},{"@type":"WebSite","@id":"https:\/\/developer-blog.net\/#website","url":"https:\/\/developer-blog.net\/","name":"Developer-Blog","description":"Webdesign, Administration, Raspberry Pi, Open Source.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/developer-blog.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/developer-blog.net\/#\/schema\/person\/b6f55a78f44b02d24b974d504a770f41","name":"Werner Ziegelwanger","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/eff0ce687362c771b5d999f18ba69d981981d432d1284d3dce3f2ba303e98c3a?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/eff0ce687362c771b5d999f18ba69d981981d432d1284d3dce3f2ba303e98c3a?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/eff0ce687362c771b5d999f18ba69d981981d432d1284d3dce3f2ba303e98c3a?s=96&d=retro&r=g","caption":"Werner Ziegelwanger"},"description":"Google+","sameAs":["Developer-Blog\/536949113033287","https:\/\/x.com\/DevBlogNet"]}]}},"_links":{"self":[{"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/posts\/12359","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/comments?post=12359"}],"version-history":[{"count":1,"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/posts\/12359\/revisions"}],"predecessor-version":[{"id":12361,"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/posts\/12359\/revisions\/12361"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/media\/12360"}],"wp:attachment":[{"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/media?parent=12359"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/categories?post=12359"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/developer-blog.net\/wp-json\/wp\/v2\/tags?post=12359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}