Python Facebook
使用 Python 封装的 Facebook 平台下的一些数据接口
灵感来自 Python-Twitter.
该库提供一种更加简单的方式去使用 Facebook
平台的数据接口。 注意,当你使用时,由于一些原因,需要在外网环境下才可以使用。
目前包括了 Facebook
, Instagram Business
, Instagram Basic Display
产品数据的使用。
现在可以使用 pip 来安装这个包啦:
$pip install --upgrade python-facebook-api ✨🍰✨
你可以访问: https://python-facebook-api.readthedocs.io/en/latest/ 去查看相关文档 (Doing).
涉及的 Facebook Graph API
你都可以通过访问: https://developers.facebook.com/docs/graph-api/ 去查看
涉及的 Instagram Graph API
你都可以通过访问: https://developers.facebook.com/docs/instagram-api/ 去查看
涉及的 Instagram Basic Display API
你都可以通过访问: https://developers.facebook.com/docs/instagram-basic-display-api/ 去查看
API 通过 pyfacebook.Api
类公开访问。
为了获取对应的数据,你首先需要一个 Facebook App。 你可以访问 App docs 去获取更多关于如何创建 App 和 如何为 App 申请相关的权限的信息。
另外,你可以在 示例文件夹 中查看一些简单的例子
Facebook 存在不同类型的访问口令。使用不同的访问口令可以获取不同类型的数据。
- 用户访问口令
- 应用访问口令
- 主页访问口令
- 客户端访问口令 (由于用到该口令的地方很少,此库不提供)
你可以阅读有关 访问口令 的文档去获取更多的信息。
如果你想要通过用户进行授权来获取用户的访问口令,你可以按照 手动授权 的文档来初始化 Api。
如果你只是想通过应用访问口令来获取一些公开数据,你可以通过如下方式初始化 Api:
In [2]: api = Api(app_id="your app id", app_secret="your app secret", application_only_auth=True) In [3]: api.get_token_info() # 获取当前口令的信息 Out[3]: AccessToken(app_id='id', application='app name', user_id=None)
如果你已经有了一个短期的访问口令,你可以通过如下方式初始化 Api:
In [4]: api = Api(app_id="your app id", app_secret="your app secret", short_token="short-lived token") In [5]: api.get_token_info() Out[5]: AccessToken(app_id='id', application='app name', user_id='token user id')
如果你已经有了一个长期的访问口令,你可以通过如下方式初始化 Api (注意,只提供一个 ``long_term_token``参数已经足以初始化,当时为了安全器件,最好还是提供一下 app 的认证数据):
In [6]: api = Api(app_id="your app id", app_secret="your app secret", long_term_token="long-term token") In [7]: api.get_token_info() Out[7]: AccessToken(app_id='id', application='app name', user_id='token user id') # 只使用 ``long_term_token`` 参数时,需要该口令具有 ``manage_pages`` 的权限 In [8]: api = Api(long_term_token="long-term token")
使用短期口令和长期口令初始化的区别在于,使用短期口令时,库会自动获取到 长期的口令。
Facebook
平台的速率限制很模糊,与你的应用的用户的数量有关,所以此处允许自定义两次请求的间隔时间。
你可以只设置参数 sleep_on_rate_limit
为 True
, 这样两次请求之间的间隔固定为了 2 秒。
或者你可以给参数 sleep_seconds_mapping
传递一个自定义的时间数据,比如:
In [9]: mapping = {10: 2, 20: 5, 50: 20, 70: 30} # 键是当前的流量百分比,值是需要间隔的时间秒数. In [10]: api = Api( ...: app_id="your app id", app_secret="your app secret", long_term_token="long-term token", ...: sleep_on_rate_limit=True, sleep_seconds_mapping=mapping ...:)
你可以通过如下的方式来获取一个主页的公开数据。
获取单个主页的公开数据:
In [3]: api.get_page_info(username='facebookapp') Out[3]: Page(id='20531316728', name='Facebook', username='facebookapp')
仅通过一次请求来获取多个主页的公开数据(参数 ids
可以是主页 ID 和主页用户名混用的列表):
In [4]: api.get_pages_info(ids=["20531316728", "nba"]) Out[4]: {'20531316728': Page(id='20531316728', name='Facebook', username='facebookapp'), 'nba': Page(id='8245623462', name='NBA', username='nba')}
存在多种方法来获取主页的帖子数据。
>>> api.get_page_feeds()
>>> api.get_page_posts()
>>> api.get_page_published_posts()
>>> api.get_page_tagged_posts()
主页 feeds 可以获取主页或者由此主页上的其他人发布的帖子动态(包括状态更新)和链接:
In [5]: api.get_page_feeds(page_id="20531316728",count=2) Out[5]: [Post(id='20531316728_587455038708591', permalink_url='https://www.facebook.com/facebookapp/videos/587455038708591/'), Post(id='20531316728_10159023836696729', permalink_url='https://www.facebook.com/20531316728/posts/10159023836696729/')]
主页 posts 只能获取到由该主页发布的帖子:
In [6]: api.get_page_posts(page_id="20531316728",count=2) Out[6]: [Post(id='20531316728_587455038708591', permalink_url='https://www.facebook.com/facebookapp/videos/587455038708591/'), Post(id='20531316728_10159023836696729', permalink_url='https://www.facebook.com/20531316728/posts/10159023836696729/')]
因为图谱 API 的限制. 动态。 API 每年返回大约 600 个经排名的帖子。
所以如果你想要获取主页的所有帖子或者标记该主页的帖子。你需要使用 get_page_published_posts
方法,该方法需要你的访问口令带有 manage_pages
的权限。
你可以通过授权来得到这样的访问口令,按照 手动授权 的文档即可。
之后你可以获取到主页所有帖子:
In [7]: api.get_published_posts(username='facebookapp', access_token='page access token') Out[7]: [Post...]
获取标记该主页的帖子:
In [8]: api.get_tagged_posts(username='facebookapp', access_token='page access token') Out[8]: [Post...]
如果你已经有了帖子的 ID,你可以通过如下方法来获取帖子的详情数据。
获取单个帖子的数据:
In [9]: api.get_post_info(post_id="20531316728_587455038708591") Out[9]: Post(id='20531316728_587455038708591', permalink_url='https://www.facebook.com/facebookapp/videos/587455038708591/')
单请求获取多个帖子的数据:
In [10]: api.get_posts_info(ids=["20531316728_587455038708591", "20531316728_10159023836696729"]) Out[10]: {'20531316728_587455038708591': Post(id='20531316728_587455038708591', permalink_url='https://www.facebook.com/facebookapp/videos/587455038708591/'), '20531316728_10159023836696729': Post(id='20531316728_10159023836696729', permalink_url='https://www.facebook.com/20531316728/posts/10159023836696729/')}
你可以通过资源对象(帖子,图片等)的 ID 来获取对应的评论数据:
In [11]: api.get_comments_by_object(object_id="20531316728_587455038708591", count=2) Out[11]: ([Comment(id='587455038708591_587460942041334', can_like=True, can_comment=True, comment_count=2, like_count=1), Comment(id='587455038708591_587464298707665', can_like=True, can_comment=True, comment_count=2, like_count=14)], CommentSummary(total_count=392, can_comment=True))
如果你已经有了评论的 ID,你可以通过如下方式来获取评论的详情数据:
获取单个评论的数据:
In [12]: api.get_comment_info(comment_id="587455038708591_587460942041334") Out[12]: Comment(id='587455038708591_587460942041334', comment_count=2, like_count=1)
单请求获取多个评论的数据:
In [13]: api.get_comments_info(ids=["587455038708591_587460942041334", "587455038708591_587464298707665"]) Out[13]: {'587455038708591_587460942041334': Comment(id='587455038708591_587460942041334', comment_count=2, like_count=1), '587455038708591_587464298707665': Comment(id='587455038708591_587464298707665', comment_count=2, like_count=14)}
你可以通过如下方式来获取主页的头像。
获取单个主页的头像数据:
In [14]: api.get_picture(page_id="20531316728") Out[14]: ProfilePictureSource(url='https://scontent.xx.fbcdn.net/v/t1.0-1/p100x100/58978526_10158354585751729_7411073224387067904_o.png?_nc_cat=1&_nc_oc=AQmaFO7eND-DVRoArrQLUZVDpmemw8nMPmHJWvoCyXId_MKLLHQdsS8UbTOX4oaEfeQ&_nc_ht=scontent.xx&oh=128f57c4dc65608993af62b562d92d84&oe=5E942420', height=100, width=100)
单请求获取多个主页的头像数据:
In [15]: api.get_pictures(ids=["20531316728", "nba"]) Out[15]: {'20531316728': ProfilePictureSource(url='https://scontent.xx.fbcdn.net/v/t1.0-1/p100x100/58978526_10158354585751729_7411073224387067904_o.png?_nc_cat=1&_nc_oc=AQmaFO7eND-DVRoArrQLUZVDpmemw8nMPmHJWvoCyXId_MKLLHQdsS8UbTOX4oaEfeQ&_nc_ht=scontent.xx&oh=128f57c4dc65608993af62b562d92d84&oe=5E942420', height=100, width=100), 'nba': ProfilePictureSource(url='https://scontent.xx.fbcdn.net/v/t1.0-1/p100x100/81204460_10158199356848463_5727214464013434880_n.jpg?_nc_cat=1&_nc_oc=AQmcent57E-a-923C_VVpiX26nGqKDodImY1gsiu7h1czDmcpLHXR8D5hIh9g9Ao3wY&_nc_ht=scontent.xx&oh=1656771e6c11bd03147b69ee643238ba&oe=5E66450C', height=100, width=100)}
你可以通过对象(主页,用户)的ID获取该对象的视频:
In [16]: api.get_videos_by_object("ikaroskunlife", fields=["id", "title", "description"], count=None, limit=20) Out[16]: [Video(id='969222676905304', created_time=None, description='冬日'), Video(id='210174653594254', created_time=None, description='Snowing'), Video(id='674270653053120', created_time=None, description='Visible')]
如果你已经获得了视频的ID,你可以通过如下方式获取视频更多信息:
In [17]: api.get_video_info("969222676905304") Out[17]: Video(id='969222676905304', created_time='2020-09-12T09:53:06+0000', description='冬日') In [18]: api.get_videos(ids=["210174653594254", "674270653053120"]) Out[18]: {'210174653594254': Video(id='210174653594254', created_time='2020-03-31T08:13:14+0000', description='Snowing'), '674270653053120': Video(id='674270653053120', created_time='2019-09-02T06:13:17+0000', description='Visible')}
你可以通过对象(主页,用户)的ID获取该对象的相册:
In[19]: api.get_albums_by_object("instagram", count=20, limit=15) Out[19]: [Album(id='372558296163354', created_time='2012-10-29T19:46:35+0000', name='时间线照片'), Album(id='623202484432266', created_time='2014-04-12T15:28:26+0000', name='手机上传')...]
如果你已经获得了相册的ID,你可以通过如下方式获取相册更多信息:
In[20]: api.get_album_info("372558296163354") Out[20]: Album(id='372558296163354', created_time='2012-10-29T19:46:35+0000', name='时间线照片') In[21]: api.get_albums(ids="372558296163354,623202484432266") Out[21]: {'372558296163354': Album(id='372558296163354', created_time='2012-10-29T19:46:35+0000', name='时间线照片'), '623202484432266': Album(id='623202484432266', created_time='2014-04-12T15:28:26+0000', name='手机上传')}
你可以通过对象(主页,用户)的ID获取该对象的图片:
In [22]: api.get_photos_by_object("372558296163354", count=10, limit=5) Out[22]: [Photo(id='3293405020745319', created_time='2020-09-10T19:11:01+0000', name='Roller skating = Black joy for Travis Reynolds. 🖤\n\nWatch our IGTV to catch some good vibes and see his 🔥🔥🔥 tricks. \n\n#ShareBlackStories\n\nhttps://www.instagram.com/tv/CE9xgF3jwS_/'), Photo(id='3279789248773563', created_time='2020-09-06T16:23:17+0000', name='#HelloFrom Los Glaciares National Park, Argentina 👏👏👏\n\nhttps://www.instagram.com/p/CEzSoQNMdfH/'), Photo(id='3276650595754095', created_time='2020-09-05T16:52:54+0000', name=None)...]
如果你已经获得了图片的ID,你可以通过如下方式获取图片更多信息:
In [4]: api.get_photo_info("3293405020745319") Out[4]: Photo(id='3293405020745319', created_time='2020-09-10T19:11:01+0000', name='Roller skating = Black joy for Travis Reynolds. 🖤\n\nWatch our IGTV to catch some good vibes and see his 🔥🔥🔥 tricks. \n\n#ShareBlackStories\n\nhttps://www.instagram.com/tv/CE9xgF3jwS_/') In [5]: api.get_photos(ids=["3279789248773563", "3276650595754095"]) Out[5]: {'3279789248773563': Photo(id='3279789248773563', created_time='2020-09-06T16:23:17+0000', name='#HelloFrom Los Glaciares National Park, Argentina 👏👏👏\n\nhttps://www.instagram.com/p/CEzSoQNMdfH/'), '3276650595754095': Photo(id='3276650595754095', created_time='2020-09-05T16:52:54+0000', name=None)}
Instagram 图谱 API 可以 instagram Professional accounts (商家和创作者) 的数据。
和 Facebook 的图谱 API 的类似,你可以通过多种方式来初始化 Api。但是你只能使用用户访问口令,并且需要你的商务帐号 ID。
如果你想要通过授权来获取用户的访问口令,你可以按照 手动授权 来初始化 api。
如果你已经有了一个短期的访问口令,你可以通过如下方式初始化 Api:
In [2]: api = IgProApi(app_id="your app id", app_secret="your app secret", short_token="short-lived token", instagram_business_id="17841406338772941") In [3]: api.get_token_info() Out[3]: AccessToken(app_id='id', application='app name', user_id="token user id")
如果你已经有了一个长期的访问口令,你可以通过如下方式初始化 Api (注意,只提供一个 ``long_term_token``参数已经足以初始化,当时为了安全器件,最好还是提供一下 app 的认证数据):
In [4]: api = IgProApi(app_id="your app id", app_secret="your app secret", long_term_token="long-lived token") In [5]: api.get_token_info() Out[5]: AccessToken(app_id='id', application='app name', user_id='token user id')
如果你想要搜索其他商家帐号的基础数据和帖子。你可以使用如下的方法:
- discovery_user: 获取用户的基础数据 - discovery_user_medias: 获取用户的帖子
Note
使用 discovery 方法进行搜索只支持使用用户名
通过其他商家用户的用户名来获取基础数据:
In [6]: api.discovery_user(username="facebook") Out[6]: IgProUser(id='17841400455970028', name='Facebook', username='facebook')
通过其他商家用户的用户名来获取帖子数据:
In [7]: api.discovery_user_medias(username="facebook", count=2) Out[7]: [IgProMedia(comments=None, id='17859633232647524', permalink='https://www.instagram.com/p/B6jje2UnoH8/'), IgProMedia(comments=None, id='18076151185161297', permalink='https://www.instagram.com/p/B6ji-PZH2V1/')]
获取你的帐号的信息:
In [10]: api.get_user_info(user_id="your instagram business id") Out[10]: IgProUser(id='17841406338772941', name='LiuKun', username='ikroskun')
获取你的帖子:
In [11]: api.get_user_medias(user_id=api.instagram_business_id, count=2) Out[11]: [IgProMedia(comments=None, id='18075344632131157', permalink='https://www.instagram.com/p/B38X8BzHsDi/'), IgProMedia(comments=None, id='18027939643230671', permalink='https://www.instagram.com/p/B38Xyp6nqsS/')]
如果你已经有了一些帖子的 ID 你可以通过如下方式获取帖子的详情数据。
获取单个帖子的详情信息:
In [12]: api.get_media_info(media_id="18075344632131157") Out[12]: IgProMedia(comments=None, id='18075344632131157', permalink='https://www.instagram.com/p/B38X8BzHsDi/')
通过单个请求获取多个帖子的详情数据:
In [13]: api.get_medias_info(media_ids=["18075344632131157", "18027939643230671"]) Out[13]: {'18075344632131157': IgProMedia(comments=None, id='18075344632131157', permalink='https://www.instagram.com/p/B38X8BzHsDi/'), '18027939643230671': IgProMedia(comments=None, id='18027939643230671', permalink='https://www.instagram.com/p/B38Xyp6nqsS/')}
获取某个帖子的评论数据:
In [16]: api.get_comments_by_media(media_id="17955956875141196", count=2) Out[16]: [IgProComment(id='17862949873623188', timestamp='2020-01-05T05:58:47+0000'), IgProComment(id='17844360649889631', timestamp='2020-01-05T05:58:42+0000')]
如果你已经有了一些评论的的 ID,你可以通过如下方式来获取评论详情。
获取单个评论的详情:
In [17]: api.get_comment_info(comment_id="17862949873623188") Out[17]: IgProComment(id='17862949873623188', timestamp='2020-01-05T05:58:47+0000')
通过单个请求获取多个评论的详情:
In [18]: api.get_comments_info(comment_ids=["17862949873623188", "17844360649889631" ...: ]) Out[18]: {'17862949873623188': IgProComment(id='17862949873623188', timestamp='2020-01-05T05:58:47+0000'), '17844360649889631': IgProComment(id='17844360649889631', timestamp='2020-01-05T05:58:42+0000')}
获取某个评论的回复:
In [19]: api.get_replies_by_comment("17984127178281340", count=2) Out[19]: [IgProReply(id='18107567341036926', timestamp='2019-10-15T07:06:09+0000'), IgProReply(id='17846106427692294', timestamp='2019-10-15T07:05:17+0000')]
如果你已经有了一些评论的 ID,你可以通过如下方法来获取回复详情。
获取单个评论的详情:
In [20]: api.get_reply_info(reply_id="18107567341036926") Out[20]: IgProReply(id='18107567341036926', timestamp='2019-10-15T07:06:09+0000')
通过单个请求获取多个回复的详情:
In [21]: api.get_replies_info(reply_ids=["18107567341036926", "17846106427692294"]) Out[21]: {'18107567341036926': IgProReply(id='18107567341036926', timestamp='2019-10-15T07:06:09+0000'), '17846106427692294': IgProReply(id='17846106427692294', timestamp='2019-10-15T07:05:17+0000')}
使用 get_user_insights
方法可以获取账号的授权数据。
如果你有另一个业务账号的授权,你可以指定 user_id
和 access_token
参数,来获取该账号的授权数据。
或者只获取你账号的授权数据:
In [4]: api.get_user_insights(user_id=api.instagram_business_id, period="day", metrics=["impressions", "reach"]) Out[4]: [IgProInsight(name='impressions', period='day'), IgProInsight(name='reach', period='day')]
与 get_user_insights
方法类似,你可以指定 user_id
和 access_token
参数来获取其他业务帐号的帖子授权数据。
或者获取你自己的帖子的授权数据:
In [6]: api.get_media_insights(media_id="media_id", metrics=["engagement","impressions"]) Out[6]: [IgProInsight(name='engagement', period='lifetime'), IgProInsight(name='impressions', period='lifetime')]
搜索标签的ID:
In [3]: api.search_hashtag(q="love") Out[3]: [IgProHashtag(id='17843826142012701', name=None)]
获取标签的信息:
In [4]: api.get_hashtag_info(hashtag_id="17843826142012701") Out[4]: IgProHashtag(id='17843826142012701', name='love')
获取使用该标签的排名较高的帖子:
In [5]: r = api.get_hashtag_top_medias(hashtag_id="17843826142012701", count=5) In [6]: r Out[6]: [IgProMedia(comments=None, id='18086291068155608', permalink='https://www.instagram.com/p/B8ielBPpHaw/'), IgProMedia(comments=None, id='17935250359346228', permalink='https://www.instagram.com/p/B8icUmwoF0Y/'), IgProMedia(comments=None, id='17847031435934181', permalink='https://www.instagram.com/p/B8icycxKEn-/'), IgProMedia(comments=None, id='18000940699302502', permalink='https://www.instagram.com/p/B8ieNN7Cv6S/'), IgProMedia(comments=None, id='18025516372248793', permalink='https://www.instagram.com/p/B8iduQJgSyO/')]
获取使用该标签的最近的帖子:
In [7]: r1 = api.get_hashtag_recent_medias(hashtag_id="17843826142012701", count=5) In [8]: r1 Out[8]: [IgProMedia(comments=None, id='18128248021002097', permalink='https://www.instagram.com/p/B8ifnoWA5Ru/'), IgProMedia(comments=None, id='18104579776105272', permalink='https://www.instagram.com/p/B8ifwfsgBw2/'), IgProMedia(comments=None, id='17898846532442427', permalink='https://www.instagram.com/p/B8ifwZ4ltqP/'), IgProMedia(comments=None, id='17891698510462453', permalink='https://www.instagram.com/p/B8ifwepgf_E/'), IgProMedia(comments=None, id='17883544606492965', permalink='https://www.instagram.com/p/B8ifwabgiPf/')]
如果你有其他业务号的授权,你可以指定 user_id
和 access_token
来获取到该账号的标签搜索记录,
或者获取你自己的搜索记录:
In [9]: api.get_user_recently_searched_hashtags(user_id="17841406338772941") Out[9]: [IgProHashtag(id='17843826142012701', name='love'), IgProHashtag(id='17843421130029320', name='liukun'), IgProHashtag(id='17841562447105233', name='loveyou'), IgProHashtag(id='17843761288040806', name='a')]
获取标记了用户的帖子。如果你有其他业务账号的授权,可以指定 user_id
和 access_token
来获取到标记该账号的帖文。
或者获取标记你自己账号的帖子:
In [10]: medias = api.get_tagged_user_medias(user_id=api.instagram_business_id, count=5, limit=5) Out[10]: [IgProMedia(id='18027939643230671', permalink='https://www.instagram.com/p/B38Xyp6nqsS/'), IgProMedia(id='17846368219941692', permalink='https://www.instagram.com/p/B8gQCApHMT-/'), IgProMedia(id='17913531439230186', permalink='https://www.instagram.com/p/Bop3AGOASfY/'), IgProMedia(id='17978630677077508', permalink='https://www.instagram.com/p/BotSABoAn8E/'), IgProMedia(id='17955956875141196', permalink='https://www.instagram.com/p/Bn-35GGl7YM/')]
获取提到了你的评论的详情信息:
In [11]: api.get_mentioned_comment_info(user_id=api.instagram_business_id, comment_id="17892250648466172") Out[11]: IgProComment(id='17892250648466172', timestamp='2020-02-24T09:15:16+0000')
获取提到了你的帖子的详情信息:
In [12]: api.get_mentioned_media_info(user_id=api.instagram_business_id, media_id="18027939643230671") Out[12]: IgProMedia(id='18027939643230671', permalink='https://www.instagram.com/p/B38Xyp6nqsS/')
Instagram 基本显示 API 可以用来访问任何类型的 Instagram 账户,但是仅仅提供对基本数据的访问权限。
使用该 API 时,你需要首先进行授权,获取拥有访问数据的权限的访问口令。
所有的文档你可以你可以访问 基本显示 APi.
现在提供三种方式初始化 Api 实例。
如果你已经拥有长效的访问口令。可以直接使用该访问口令进行初始化:
In[1]: from pyfacebook import IgBasicApi In[2]: api = IgBasicApi(long_term_token="token")
如果你有短效的访问口令,你需要提供你的应用程序的密钥,用以交换到长效的访问口令:
In[3]: api = IgBasicApi(app_id="app id", app_secret="app secret", short_token="token")
如果你只想要使用应用密钥初始化 Api,然后交由用户手动进行授权,你可以使用授权流程:
In[4]: api = IgBasicApi(app_id="app id", app_secret="app secret", initial_access_token=False) In[5]: api.get_authorization_url() Out[5]: ('https://api.instagram.com/oauth/authorize?response_type=code&client_id=app+id&redirect_uri=https%3A%2F%2Flocalhost%2F&scope=user_profile+user_media&state=PyFacebook', 'PyFacebook') # 用户访问链接后,允许相关权限,会跳转到指定的 URL. 复制完整的跳转 URL In[6]: api.exchange_access_token(response="跳转的 URL")
你可以获取用户的基础信息:
In[7]: api.get_user_info() Out[7]: IgBasicUser(id='17841406338772941', username='ikroskun')
你可以获取用户的帖子信息:
In[7]: r = api.get_user_medias() In[8]: r Out[8]: [IgBasicMedia(id='17846368219941692', media_type='IMAGE', permalink='https://www.instagram.com/p/B8gQCApHMT-/'), IgBasicMedia(id='18091893643133286', media_type='IMAGE', permalink='https://www.instagram.com/p/B8gPx-UnsjA/'), IgBasicMedia(id='18075344632131157', media_type='VIDEO', permalink='https://www.instagram.com/p/B38X8BzHsDi/'), IgBasicMedia(id='18027939643230671', media_type='CAROUSEL_ALBUM', permalink='https://www.instagram.com/p/B38Xyp6nqsS/'), IgBasicMedia(id='17861821972334188', media_type='IMAGE', permalink='https://www.instagram.com/p/BuGD8NmF4KI/'), IgBasicMedia(id='17864312515295083', media_type='IMAGE', permalink='https://www.instagram.com/p/BporjsCF6mt/'), IgBasicMedia(id='17924095942208544', media_type='IMAGE', permalink='https://www.instagram.com/p/BoqBgsNl5qT/'), IgBasicMedia(id='17896189813249754', media_type='IMAGE', permalink='https://www.instagram.com/p/Bop_Hz5FzyL/'), IgBasicMedia(id='17955956875141196', media_type='CAROUSEL_ALBUM', permalink='https://www.instagram.com/p/Bn-35GGl7YM/'), IgBasicMedia(id='17970645226046242', media_type='IMAGE', permalink='https://www.instagram.com/p/Bme0cU1giOH/')]
你可以获取当个帖子的信息:
In[9]: r = basic_api.get_media_info(media_id="18027939643230671") In[9]: r Out[10]: IgBasicMedia(id='18027939643230671', media_type='CAROUSEL_ALBUM', permalink='https://www.instagram.com/p/B38Xyp6nqsS/')
Facebook:
- 主页信息
- 主页图片信息
- 帖子数据
- 评论数据
- 视频数据
- 相册数据
- 图片数据
Instagram:
- 搜索其他业务主页的基础信息和帖子
- 获取授权业务主页的基础信息
- 获取授权业务主页的帖子信息
- 获取授权业务主页的帖子评论数据
- 获取授权业务主页的评论的回复数据
- 获取授权业务主页用户的 Insights 数据
- 获取授权业务主页帖子的 Insights 数据
- 搜索标签 ID
- 获取标签信息
- 获取标签下排名靠前的帖子
- 获取标签下最近的帖子
- 获取授权业务主页的标签搜索记录
- 获取标记了用户的帖文
- 获取提到了用户的评论信息
- 获取提到了用户的帖子信息
Instagram 基础显示 API:
- 获取用户信息
- 获取的用户的帖子
- 获取帖子的详情
- 发布帖子