-
@ EVERYTHING SATOSHI
2024-09-05 20:26:50
While tinkering about NWC and twitter I decided to hack a python script that might perhaps begin something good
**Here's a high-level overview of how you could connect your Twitter account to a Nostr Wallet using NWC and automate a 21 satoshi payment for every like:**
# Prerequisites:
1. Twitter Developer Account
2. Nostr Wallet with NWC support (e.g., Alby, Nostrify)
3. Twitter API credentials (API key, API secret key, Access token, Access token secret)
4. Python script with Tweepy (Twitter API library) and nostr-client (Nostr library)
### Step 1: Set up Twitter API credentials
> Create a Twitter Developer account and obtain API credentials
> Install Tweepy using pip: pip install tweepy
### Step 2: Connect Nostr Wallet using NWC
> Choose a Nostr Wallet with NWC support (e.g., Alby, Nostrify)
> Set up the wallet and obtain the NWC credentials (e.g., public key, private key)
### Step 3: Create a Python script
> Import Tweepy and nostr-client libraries
> Authenticate with Twitter API using Tweepy
> Connect to Nostr Wallet using NWC credentials
> Define a function to send 21 satoshis for every like
> Use Tweepy to stream likes and trigger the payment function
`Python` script:
```
import tweepy
from nostr_client import Client
# Twitter API credentials
twitter_api_key = "YOUR_API_KEY"
twitter_api_secret_key = "YOUR_API_SECRET_KEY"
twitter_access_token = "YOUR_ACCESS_TOKEN"
twitter_access_token_secret = "YOUR_ACCESS_TOKEN_SECRET"
# Nostr Wallet NWC credentials
nwc_public_key = "YOUR_NWC_PUBLIC_KEY"
nwc_private_key = "YOUR_NWC_PRIVATE_KEY"
# Set up Tweepy
auth = tweepy.OAuthHandler(twitter_api_key, twitter_api_secret_key)
auth.set_access_token(twitter_access_token, twitter_access_token_secret)
api = tweepy.API(auth)
# Set up Nostr Client
nwc_client = Client()
nwc_client.connect(nwc_public_key, nwc_private_key)
# Define payment function
def send_satoshis():
# Create a new Nostr event with 21 satoshis
event = nwc_client.create_event(21)
# Send the event to the Nostr network
nwc_client.send_event(event)
# Stream likes and trigger payment function
class LikeStream(tweepy.StreamListener):
def on_like(self, like):
send_satoshis()
stream = tweepy.Stream(auth, LikeStream())
stream.filter(track=["likes"])
```
##### _Please note that this is a simplified example and may require additional error handling, security measures, and modifications to work as intended._
originally posted at https://stacker.news/items/673795