Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get user information in Twitter API using bearer token

Tags:

php

twitter

api

I am using twitter API in my Laravel application. In my app I want to get user name and profile picture when user insert url by. I searched lot but couldn't found. For user info I had to make user login to twitter and connect with my app for access token. I want to use App authorization only so user don't need to login twitter. I found that with Bearer token tweets can be search with this search API

https://api.twitter.com/1.1/search/tweets.json?q=twitterapi

Is there any API's that I can get User screen name using URL?

I know there may be posts that are similar with this, most answers with usl says "This page doesn't exists" or saying to use Oauth.

Thanks in advance.

like image 992
Jitesh Meniya Avatar asked Mar 05 '23 04:03

Jitesh Meniya


1 Answers

Ah, I was so lazy to read whole documentation.
Here is everything about App-only authentication. All you need to do is firstly encode consumer key and secret in RFC 1738 and then re-encode them in

Base64 "RFC-1738-encoded-consumer-key:RFC-1738-encoded-consumer-secret"

format. You will get bearer token credentials like

eHZ6MWV2RlM0d0VFUFRHRUZQSEJvZzpMOHFxOVBaeVJnNmllS0dFS2hab2xHQzB2SldMdzhpRUo4OERSZHlPZw== this.

Now you all you need to do is get bearer token with post request with

https://api.twitter.com/oauth2/token?grant_type=client_credentials this URL.

Be sure to set header with

Authorization: Basic bearer-token-credentials
Content-Type: application/x-www-form-urlencoded
Content-Length: 29 

and you will get Bearer Token in json format.

Now with every request, just send this bearer token in header like

Authorization: Bearer bearer-token

and you can get data which doesn't require user authentication. For example, if you want to get User data by screen name or id, just send post request in https://api.twitter.com/1.1/users/show.json?screen_name=here-comes-twitter-screen-name URL.

like image 176
Jitesh Meniya Avatar answered Mar 08 '23 00:03

Jitesh Meniya