Login with twitter and post tweet on behalf of user

Can this be done?
Creating a mobile app with nocodejs and bubble…
Tried the twitter plugin, can login successfully (tested with the companion app from nocodejs) but was disappointed to find out the plugin can’t post a tweet as well.
Other options? Saw webhooks and integromat mentioned…zapier…
Saw a few forum posts on server side code (js and node stuff) and thinking someone successfully posted a tweet but just not sure where to start with that functionality. Any tuts out there?
Thank you for your time and effort!!

1 Like

Yes its possible using the oAuth1 authentication

Yes, we did this for Twitter, Facebook, Linkedin, Google My Business and Pinterest for SendPilot which is a social media scheduler built on Bubble.

We ended up using Auth0 to securely hold all the tokens to authorise our connection to the networks then you can use an api call to post on behalf of the user and authenticate with their token.

@NigelG made this one happen!

Yes, it is possible but it is not particularly easy.

Getting the two Twitter tokens is fairly simple but you then need to do oauth1 calls to the Twitter API to post.

We used both Webtask (nodejs) and then a server side plugin to do this.

Trying to do it in native bubble is pretty difficult.

I can probably turn the server side plugin into a public one … But I won’t be able to do that until the new year now.

1 Like

is this still a work in progress? We managed to do the OAuth for twitter, and conceivably once we are connected we could just directly call the twitter api, but I’m curious if more progress has been made on posting directly to twitter from a bubble package/app?

Doing the Oauth1 signing in Bubble is very hard.

Easier from an external service or a SSA.

Just saying :slight_smile:

🐦 Twitter User Oauth - New Plugin from Zeroqode

We got the Oauth done (using the vladlarin recommended plugin). That part works. But posting to twitter also works, but not with an image. That part is a challenge. We could just do a direct API call to twitter I guess but that image part of a tweet is pretty important.

Is there a guide for setting up these log-ins. I tried to follow Bubble Webinar 2 on YouTube to set up LinkedIn login but didn’t get far because it appears the LinkedIn Developer interface has changed significantly.

1 Like

It is two calls to twitter API. One to upload the image, then you attach the returned id to the post.

If you can do the oauth1 signing (which is why the Zeroqode plugin is so useful) then you can do the calls easily. It is the signing that is the headache. But doable in an SSA. Or ask Vladlarin nicely :slight_smile:

1 Like

There are several steps you need to take to connect to the networks and post on behalf of your users, or to any of the social networks.

  1. Apply for approval to access the API and get an approved app on the social network. This varies per network from fast (Reddit) to long (Facebook with screencasts, scope permissions, etc).
  2. Once you have approval to use the API, you need to integration authentication. This is usually some form of OAuth2. Basically you’ll be opening a new tab/window with your credentials given by the network, users will login into the network and grant you permission, and you’ll get a code back that you will exchange for a token. Store this access token in a secure location. Each network has different limits and lifetimes for the token, so be sure the check that. Finally, when you make the code<>token exchange always do it on the server-side or you’ll expose your social network secret key.
  3. With the access token you can start posting on your users’ behalf using the social network’s API. Depending upon your programming language there are packages/modules for some networks that might make life easier. Generally, I’ve found they aren’t maintained too well and it is easier to just use the REST calls.
  4. Be sure to follow the guidelines of the networks or you and your users will be banned. For example twitter.

You can also try our Ayrshare Bubble Plugin that connect to all the networks for you, so you can send on behalf of users.