3.0 KiB
Fetch tweets from Twitter in Zulip! This is great for seeing and discussing who is talking about you, friends, competitors, or important topics in real time.
{!create-stream.md!}
Next, on your {{ settings_html|safe }}, create a bot for {{ integration_display_name }}. Make sure that you select Incoming webhook as the Bot type:
The API keys for "Incoming webhook" bots are limited to only sending messages via webhooks. Thus, this bot type lessens the security risks associated with exposing the bot's API key to third-party services.
Download your new bot's zuliprc
configuration file.
{!download-python-bindings.md!}
The Twitter bot should be set up on a trusted machine, because your API key is visible to local users through the command line or config file.
Next, install version 1.0 or later of the python-twitter
library. If your operating system distribution doesn’t package a new
enough version, you can install the library from source from
the GitHub repository.
Next, set up Twitter authentication. This bot uses OAuth to authenticate with Twitter, and in order to obtain a consumer key & secret, you must register a new application under your Twitter account:
-
Log in to https://apps.twitter.com/.
-
Click on
Create New App
and fill out the form. -
Click on the application you created and click create my access token. Fill in the requested values.
To configure and deploy this bot:
-
Create a
~/.zulip_twitterrc
with the following contents:[twitter] consumer_key = consumer_secret = access_token_key = access_token_secret =
-
Place your bot's
zuliprc
in a directory of your choice (for the next step,~/zuliprc
is used). -
Test the script by running it manually:
/usr/local/share/zulip/integrations/twitter/twitter-bot --search="@nprnews,quantum physics" --site={{ realm_uri }} --config-file=~/zuliprc /usr/local/share/zulip/integrations/twitter/twitter-bot --twitter-name="<@your- twitter-handle>" --site={{ realm_uri }} --config-file=~/zuliprc
Note:
twitter-bot
may install to a different location on your operating system distribution. -
Configure a crontab entry for this script. A sample crontab entry that will process tweets every minute is:
* * * * * /usr/local/share/zulip/integrations/twitter/twitter-bot --search="@nprnews, quantum physics" --site={{ realm_uri }} --config-file=~/zuliprc
When someone tweets a message containing one of your search terms, you’ll get a Zulip on your specified stream, with the search term as the topic.
{!congrats.md!}
Note that the Twitter search bot integration just sends links to
tweets; the pretty inline previews of tweets are generated by the
Twitter card rendering integration configured in
/etc/zulip/settings.py
on the Zulip server.