教程
上传视频并创建推文草稿
简介
要求
步骤
1.上传视频
使用分块 POST media/upload 端点需要调整单个图像上传的工作流程。分块上传教程对上传视频至 Twitter 做了全面的概述。
对于各个视频,应用程序将:
- 使用 POST media/upload (INIT) 端点初始化上传
- 使用 POST media/upload (APPEND) 端点上传各字节块
- 使用 POST media/upload (FINALIZE) 端点完成上传
当使用 upload.twitter.com 端点上传媒体时,如果媒体的使用者并非已验证的使用者,则应使用 additional_owners 参数。该使用者应当为广告账号的可推广用户。请参见 POST accounts/:account_id/tweets 端点,了解更多。
2.验证视频已经过处理。
使用 GET media/upload (STATUS) 定期询问 Twitter 是否已经完成对视频的处理。如果 FINALIZE 命令返回 processing_info 字段,则应每隔几秒调用此端点,直到返回 "state": "succeeded"。
twurl -X GET -H upload.twitter.com "/1.1/media/upload.json?command=STATUS&media_id=931263015239933952"
响应
{
"media_id": 1136358971441176600,
"media_id_string": "1136358971441176577",
"media_key": "13_1136358971441176577",
"size": 4948186,
"expires_after_secs": 1295797,
"video": {
"video_type": "video/mp4"
},
"processing_info": {
"state": "succeeded",
"progress_percent": 100
}
}
3.将视频移至 Twitter 广告账号下的广告媒体库
在上传媒体之后,你的应用程序应当通过 POST accounts/:account_id/media_library 将其添加至媒体库
twurl -X POST -H ads-api.twitter.com "/5/accounts/:account_id/media_library?file_name=myvideo.mpeg&media_category=AMPLIFY_VIDEO&media_id=931263015239933952&name=Latte"
响应
{
"request": {
"params": {
"name": "Late",
"file_name": "myvideo.mpeg",
"media_category": "AMPLIFY_VIDEO",
"account_id": "18ce54uhdu0",
"media_id": 1136670181575413800
}
},
"data": {
"tweeted": false,
"duration": 13567,
"name": "Latte",
"file_name": "sample.mpeg",
"description": null,
"media_url": "https://video.twimg.com/amplify_video/1136670181575413760/vid/640x360/zz0E_jTRHjhUGNxK.mp4?tag=13",
"media_category": "AMPLIFY_VIDEO",
"poster_image_url": "https://pbs.twimg.com/amplify_video_thumb/1136670181575413760/img/d4KRzzc_IRHVQSiv.jpg",
"poster_image_media_key": "3_1136670181575413760",
"media_key": "13_1136670181575413760",
"created_at": "2019-06-06T16:24:24Z",
"media_status": "TRANSCODE_COMPLETED",
"media_id": "1136670181575413760",
"title": null,
"media_type": "VIDEO",
"aspect_ratio": "16:9",
"updated_at": "2019-06-06T16:25:49Z",
"deleted": false
}
}
注意:如出现“未授权使用媒体 xxxxx”的错误,则表明媒体上传使用的 additional_owners 参数不正确。使用 Twitter 广告账号可推广用户的用户 ID(见步骤 5)。
4.创建视频应用下载卡片
在视频上传并成功处理后,使用 POST accounts/:account_id/cards/video_app_download 端点创建视频应用下载卡片。
twurl -H "ads-api.twitter.com" "/5/accounts/:account_id/cards/video_app_download" -d
"video_id=13_1119361956324855808&country_code=US&name=video app download&googleplay_app_id=com.company_name.android"
响应
{
"data": {
"name": "video app download",
"googleplay_app_id": "com.twitter.android",
"video_url": "https://video.twimg.com/amplify_video/vmap/958231855240589313.vmap",
"video_owner_id": "756201191646691328",
"video_content_id": "958231855240589313",
"id": "5a4z3",
"country_code": "US",
"video_hls_url": "https://video.twimg.com/amplify_video/958231855240589313/pl/vHKJ2aH1tZGKW3bh.m3u8",
"created_at": "2018-01-30T07:00:24Z",
"card_uri": "card://958233417929261056",
"updated_at": "2018-01-30T07:00:24Z",
"video_poster_url": "https://pbs.twimg.com/amplify_video_thumb/958231855240589313/img/rjhswYG084qYYgF6.jpg",
"app_cta": "INSTALL",
"deleted": false,
"card_type": "VIDEO_APP_DOWNLOAD"
},
"request": {
"params": {
"name": "video app download",
"googleplay_app_id": "com.twitter.android",
"video_id": "13_1119361956324855808",
"video_url": "https://video.twimg.com/amplify_video/vmap/958231855240589313.vmap",
"video_stream_content_type": "video/mp4; codecs='avc1.42E01E, mp4a.40.2'",
"video_owner_id": "756201191646691328",
"video_content_id": "958231855240589313",
"account_id": "18ce54uhdu0",
"country_code": "US",
"video_hls_url": "https://video.twimg.com/amplify_video/958231855240589313/pl/vHKJ2aH1tZGKW3bh.m3u8",
"video_poster_url": "https://pbs.twimg.com/amplify_video_thumb/958231855240589313/img/rjhswYG084qYYgF6.jpg",
"app_cta": "INSTALL",
"card_type": "VIDEO_APP_DOWNLOAD"
}
}
}
5.验证凭据是否能够创建推广推文(可选)
如要为 Twitter 广告账号创建推文,则要求已验证用户拥有可以代表可推广用户创建可推广推文的许可。
注意:调用 GET accounts/:account_id/promotable_users 能够返回广告账号的可推广用户,以及账号是否能够创建推广推文 (FULL) 或已被授权转推 (RETWEETS_ONLY)。
如果证书并未完全针对 FULL 可推广用户,则应当通过向 GET accounts/:account_id/authenticated_user_access 端点发出请求,验证已认证用户是否拥有可代表该用户发推的许可。请求响应将包括 TWEET_COMPOSER 的许可,表明用户可以代表 FULL 可推广用户创建 cast 为空的推文。
6.使用视频应用下载卡片创建推文草稿
然后,我们将使用 POST accounts/:account_id/tweet 中的 card_uri 将本卡片与推文关联。
请求
twurl -H "ads-api.twitter.com" "/5/accounts/:account_id/draft_tweets" -d "card_uri=card://1119368073444638720&text=Sample Tweet with card_uri and twurl"
应用程序可以使用 GET accounts/:account_id/cards/video_app_download 为现有视频应用下载卡片找到 card_uri。
注意:常见的错误是 UNAUTHORIZED_ACCESS,显示的消息为“用户 [X] 无权为用户 id [X] 创建推文”或“未找到账号 [X] 的可推广用户 [X]”。包括 as_user_id,并带有 FULL 可推广用户的 user_id 作为参数。
后续步骤
现在,你在 Twitter 广告账号中拥有了一张视频应用下载卡片。你可以创建广告活动来推广该推文。
准备好构建你的解决方案了吗?