DEV Community

Cover image for Twitter Feed on WordPress
Keramot UL Islam
Keramot UL Islam

Posted on

3

Twitter Feed on WordPress

Social Media is very important for bloggers and also for business websites. A better way to connect Twitter with a website is by creating a Twitter Feed for that website.

In this article, I'm going to show how to talk to the Twitter API and fetch data from Twitter.

For doing so, you need three things:

  1. Twitter username
  2. Consumer key
  3. Consumer Secret key

You can get those data from your Twitter app.

Check my other articles:
Hey, WordPress devs. Try Python
WordPress post view count

The concept is pretty simple and straight forward. At first, you'll do the authentication, then use that authentication and sent a request to Twitter for your Twitter feed data.

It's like you went to a bank, showed your identity and other papers for verifications, and then they'll sanction your loan request.

Yeah... sounds funny. You need to verify yourself for your own data. But the Bottom line is "That's how the world works".

Now let's see how things work together...

$user_name = "your twitter user name";
$consumer_key = "your twitter app consumer key";
$consumer_secret_key = "your twitter app consumer secret key";

$credentials = base64_encode( $consumer_key . ':' . $consumer_secret_key );
$auth_response = wp_remote_post( 'https://api.twitter.com/oauth2/token',
                array(
                    'method' => 'POST',
                    'httpversion' => '1.1',
                    'blocking' => true,
                    'headers' => [
                        'Authorization' => 'Basic ' . $credentials,
                        'Content-Type' => 'application/x-www-form-urlencoded;charset=UTF-8',
                    ],
                    'body' => ['grant_type' => 'client_credentials'],
                ) );


$body = json_decode( wp_remote_retrieve_body( $auth_response ) );
$token = $body->access_token;
$tweets_response = wp_remote_get( 'https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=' . $user_name . '&count=900&tweet_mode=extended',
                array(
                    'httpversion' => '1.1',
                    'blocking' => true,
                    'headers' => [ 'Authorization' => "Bearer $token", ],
                ) );

$twitter_data = json_decode( wp_remote_retrieve_body( $tweets_response ), true );

if ( !array_key_exists( 'errors', $twitter_data ) && !empty( $twitter_data  ) ) {
    print_r( $twitter_data ); // Hell Yeah, you did it...
}
Enter fullscreen mode Exit fullscreen mode

You can also add something called transient for better performance. I'll write an article only on Transient very soon.

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay