Blog Reichweite maximieren mit Twitter

Neue Beiträge automatisch ohne Plugin tweeten lassen.

    Inhaltsangabe
  1. 1. Einen Developer Account erstellen
  2. 2. Erstellen eines Twitter Apps
  3. 3. Api Download
  4. 4. Der Code

Wenn man eine Webseite hat wie ich, wo der Hauptbestandteil darin liegt, dass täglich neue Blogbeiträge geschrieben werden, hat man eine sehr eingeschränkte Reichweite. Das einzige was man machen kann ist, die Webseite so gut wie möglich zu optimieren, um in den Suchergebnissen von search engines so gut wie möglich dazustehen.

Die beste Strategie, um die Besucherzahlen zu erhöhen in in diesem Falle also, seine Beiträge auf weiteren Plattformen zugänglich zu machen. Hierfür eignen sich am besten die sozialen Medien und deswegen habe ich mich entschieden, einen Post bot für Twitter zu erstellen. Ich werde einen Bot programmieren, welches meine täglichen Blogs automatisch tweetet, mit Hashtags versieht und verlinkt. Das dürfte nicht allzu schwer sein…

1. Einen Developer Account erstellen

Hierfür geht man auf die Developer Seite von Twitter und meldet sich an. Es können auch bereits existierende Accounts genutzt werden. Nachdem man sich angemeldet hat, wird man seitens Twitter ausgefragt, wozu man sein Developer Account benutzen möchte. Hier muss man mit mindestens 300 Zeichen beschreiben, was man vorhat und wie man es realisieren möchte.

Anschließend muss man abwarten, bis man eine Bestätigungsmail bekommt, dass der Account freigeschaltet ist. In meinem Fall hat es nur eine halbe Stunde gedauert und mein Account war bestätigt.

2. Erstellen eines Twitter Apps

Auf der App Übersichtsseite kann man dann eine App erstellen, diese benennen und einen Verwendungszweck angeben. Sobald man die App erstellt hat, landet man auf der App-Detailseite. Dort hat man die Möglichkeit, Api Keys und Tokens zu generieren. Diese braucht man sich nicht aufzuschreiben, wie bei einigen anderen Seiten weil diese bei jedem Aufruf sichtbar sind. Sie werden nicht versteckt oder entfernt.

So wie es scheint, sind die Tokens auch nicht zeitlich begrenzt. Das bedeutet, dass wenn ein Token erstellt wird, diese unendlich gültig sein wird. Trotzdem sollte man seine E-Mails im Auge behalten und gucken, ob etwas seitens Twitter gefordert wird.

3. Api Download

Ich habe gestern mal auf der Twitter API Dokumentationsseite nachgeschaut, wie man die API am besten nutzen könnte und dort waren für beinahe jede Use case git repositories, wo man fertige Programmierungen herunterladen konnte um diese mit einem einfachen require_once in seinen Code einzubinden. Ich habe mich für die J7mbo/twitter-api-php entschieden und keinerlei Performance Probleme gespürt.

4. Der Code

Man benötigt von dieser Repo nur die TwitterAPIExchange.php Datei in seinen Projekt zu laden und es mit dem Befehl require_once reinzuladen. Meine Dateistruktur im WordPress Theme sieht aktuell so aus:

  • inc
    • twitter
      • TwitterAPIExchange.php
      • twitter.php

In die functions.php habe ich eine Zeile hinzugefügt:

require_once('inc/twitter/twitter.php');

und die twitter.php beinhaltet lediglich folgende Zeilen:

<?php
function post_to_social_media( $ID, $post ) {
	require_once('TwitterAPIExchange.php');
	$settings = array(
		'oauth_access_token' => "XXXXXXXXXXXXX",
		'oauth_access_token_secret' => "XXXXXXXXXXXX",
		'consumer_key' => "XXXXXXXXXXXX",
		'consumer_secret' => "XXXXXXXXXXXX"
	);
	$twitter = new TwitterAPIExchange($settings);


	$tweet_text = $post->post_excerpt."\n";
	foreach (wp_get_post_tags($post->ID, array('fields' => 'names') ) as $tagName) {
		$tagName = str_replace(
		  array('-', ' '),
		  array('', ''),
		  $tagName
		);
		$tweet_text .= '#'.$tagName.' ';
	}

	$tweet_text .= "\n".get_permalink($post);

	$url = 'https://api.twitter.com/1.1/statuses/update.json';

	$tweet = json_decode( (string) $twitter->buildOauth(
			'https://api.twitter.com/1.1/statuses/update.json',
			'POST'
		)->setPostfields(array(
			'status' => $tweet_text
		))->performRequest()
	);

	if ($tweet->id) {
		update_post_meta( $post->ID, 'tweet_id', $tweet->id );
	}else {
		ob_start();
		var_dump($tweet);
		$tweet_dump = ob_get_contents();
		ob_end_clean();
		wp_mail(
			get_option('admin_email'),
			'Tweet Fail',
			"<pre>$tweet_dump</pre>",
			array('Content-Type: text/html; charset=UTF-8')
		);
	}
}
add_action( 'publish_post', 'post_to_social_media', 10, 2 );

Der Ablauf dieses Codes kann wie folgt beschrieben werden:

  1. TwitterAPIExchange.php reinladen.
  2. Zugangsdaten der App in die $settings packen.
  3. Ein TwitterAPIExchange Objekt in die $twitter Variable generieren.
  4. Tweet Text ($tweet_text) soll mit dem Auszug $post->post_excerpt beginnen und anschließend soll eine neue Zeile generiert werden (\n)
  5. Es sollen alle Schlüsselbegriffe des Beitrages geholt werden (wp_get_post_tags) und einzeln verarbeitet werden (foreach)
    1. Dem Schlüsselbegriff sollen die Bindestriche und Leerzeichen entfernt werden.
    2. Es soll eine Raute (#) vor dem Schlüsselbegriff eingebaut werden damit es als Hashtag anerkannt wird.
  6. Es soll erneut eine neue Zeile erstellt werden (\n) und dort soll dann die URL zum Beitrag erscheinen (get_permalink($post)).
  7. Dieser aufgebaute Tweet ($tweet_text) soll auf Twitter gepostet werden und die Rückmeldung soll als String ((string)) gespeichert werden, damit nicht jedes Mal erneut versucht wird, einen Tweet zu posten, wenn man die $tweet Variable aufruft.
  8. Wenn eine Tweet ID ($tweet->id) zurück gegeben wurde, soll diese in den Post Metas gespeichert werden (update_post_meta) und wenn nicht soll die Ausgabe (var_dump) als E-Mail (wp_mail) an den Admin (get_option(‚admin_email‘)) verschickt werden.

Themen

Performance php Plugins SEO Social Media Technik Twitter WordPress

Beitrag teilen

WhatsAppen

Folgen Sie uns