Skip to content

Commit 19aeada

Browse files
authored
Add new preview endpoint support (#191)
1 parent dcf446c commit 19aeada

File tree

4 files changed

+67
-0
lines changed

4 files changed

+67
-0
lines changed

examples/tweet_preview.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22
from twitter_ads.campaign import Tweet
33
from twitter_ads.creative import WebsiteCard
44

5+
"""
6+
"Tweet.preview()" will no longer be available on August 20, 2019.
7+
https://twittercommunity.com/t/announcement-new-and-improved-tweet-previews/126064
8+
9+
Please use "TweetPreview.load()" instead. See examples/tweet_previews.py for reference.
10+
"""
11+
12+
513
CONSUMER_KEY = 'your consumer key'
614
CONSUMER_SECRET = 'your consumer secret'
715
ACCESS_TOKEN = 'access token'

examples/tweet_previews.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
from twitter_ads.client import Client
2+
from twitter_ads.creative import TweetPreview
3+
from twitter_ads.enum import TWEET_TYPE
4+
5+
CONSUMER_KEY = ''
6+
CONSUMER_SECRET = ''
7+
ACCESS_TOKEN = ''
8+
ACCESS_TOKEN_SECRET = ''
9+
ACCOUNT_ID = ''
10+
11+
# initialize the client
12+
client = Client(
13+
CONSUMER_KEY,
14+
CONSUMER_SECRET,
15+
ACCESS_TOKEN,
16+
ACCESS_TOKEN_SECRET)
17+
18+
# load the advertiser account instance
19+
account = client.accounts(ACCOUNT_ID)
20+
21+
# fetch preview data
22+
tweets = TweetPreview.load(
23+
account,
24+
tweet_ids=['1130942781109596160', '1101254234031370240'],
25+
tweet_type=TWEET_TYPE.PUBLISHED)
26+
27+
# iterate for each tweet
28+
for k in tweets:
29+
print(k.tweet_id)
30+
print(k.preview)

twitter_ads/creative.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -548,3 +548,26 @@ def reload(self):
548548
resource_property(CardsFetch, 'website_title', readonly=True)
549549
resource_property(CardsFetch, 'website_url', readonly=True)
550550
resource_property(CardsFetch, 'wide_app_image', readonly=True)
551+
552+
553+
class TweetPreview(Resource):
554+
555+
PROPERTIES = {}
556+
557+
RESOURCE_COLLECTION = '/' + API_VERSION + '/accounts/{account_id}/tweet_previews'
558+
559+
@classmethod
560+
def load(klass, account, tweet_ids=None, tweet_type=None):
561+
params = {}
562+
563+
params['tweet_ids'] = ','.join(map(str, tweet_ids))
564+
params['tweet_type'] = tweet_type
565+
resource = klass.RESOURCE_COLLECTION.format(account_id=account.id)
566+
request = Request(account.client, 'get', resource, params=params)
567+
return Cursor(klass, request, init_with=[account])
568+
569+
570+
# tweet preview properties
571+
# read-only
572+
resource_property(TweetPreview, 'preview', readonly=True)
573+
resource_property(TweetPreview, 'tweet_id', readonly=True)

twitter_ads/enum.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,3 +189,9 @@ def enum(**enums):
189189
DEFINED='DEFINED',
190190
EXPANDED='EXPANDED'
191191
)
192+
193+
TWEET_TYPE = enum(
194+
DRAFT='DRAFT',
195+
PUBLISHED='PUBLISHED',
196+
SCHEDULED='SCHEDULED'
197+
)

0 commit comments

Comments
 (0)