Facebook 的 Graph API 允许开发人员以编程方式访问和管理 Facebook 页面,您可以用它做很多事情,包括发布帖子、获取受众洞察、管理广告等等,而无需访问 Facebook。虽然有很多方法可以做到这一点,但使用 Python 尤其容易。本指南将向您展示如何使用 Python 和 Meta 中的 Graph API 来获取您可以发布的页面列表及其 ID。
在开始本指南之前,您需要拥有一个 Facebook 开发者帐户和一个带有访问令牌的 Facebook 应用程序。如果您在创建 Facebook 应用程序时需要帮助,我们提供了指南,完成后您可以在此处领取。我们还有一个您应该检查一下,特别是如果您刚刚开始编程。
首先,您需要安装 requests 库,它将帮助我们与 Facebook Graph API 进行交互。
在命令提示符下运行此命令以尽早安装该库:
pip 安装请求
安装库后,我们就可以开始编写脚本了。我们将解释代码的每个部分,并在最后发布整个内容,以便您可以根据需要将代码复制并粘贴到记事本中。
提示输入访问令牌
我们要做的第一件事是编写一些代码来提示用户输入访问代码。此添加将允许您使用相同的脚本来检查任何访问令牌:
def get_access_token():
”“”
提示用户输入 Facebook 用户访问令牌。
”“”
return input("请输入您的 Facebook 用户访问令牌:")
获取您管理的页面
获得访问令牌后,我们可以使用 /me/accounts Graph API 端点来获取用户管理的页面。应用程序创建文档提供了更多此类端点。
def get_pages(access_token):
”“”
使用 Graph API 获取用户有权访问的页面列表。
”“”
url =“https://graph.facebook.com/v17.0/me/accounts”
参数 = {
'access_token':access_token
}
# 向 Graph API 发出请求以获取页面列表
响应 = requests.get(url, params=params)
如果响应.status_code == 200:
页面=response.json().get('数据',
)
返回页面
别的:
print("获取页面时出错:",response.status_code,response.text)
返回
检查发帖权限
获取页面列表后,我们需要检查用户是否有权限向每个页面发帖。我们正在寻找的权限是 CREATE_CONTENT 和 MANAGE,我们将使用以下代码来查看哪些页面拥有它们。
def check_pages_with_post_permission(pages):
”“”
通过查看权限来检查用户可以发布到哪些页面。
”“”
可发布的页面=
对于页中的页:
权限 = page.get('权限',
)
如果权限中有“CREATE_CONTENT”或权限中有“MANAGE”:
postable_pages.append({
'id': page.get('id'),
'名称': page.get('名称')
})
返回 postable_pages
把它们放在一起
在脚本的主要部分,我们组合了所有这些功能。它将提示输入访问令牌、获取页面、检查您可以发布到哪些页面并显示结果。当您按 Enter 键时,脚本将结束。
def main():
”“”
主要功能是运行脚本。
”“”
# 获取用户的访问令牌
访问令牌 = get_access_token()
# 获取页面列表
页面 = get_pages(access_token)
如果页面:
print("\n您管理以下页面:")
对于页中的页:
print(f"- {page['name']} (ID: {page['id']})")
# 检查哪些页面有权限发帖
postable_pages = check_pages_with_post_permission(页面)
如果可发布页面:
print("\n您可以发布到以下页面:")
对于 postable_pages 中的页面:
print(f"- {page['name']} (ID: {page['id']})")
别的:
print("\n您无权在任何列出的页面上发帖。")
别的:
print("未找到页面或发生错误。")
# 等待用户按下回车键后退出
# 运行主函数
如果 __name__ == "__main__":
主要的()
完整的 Python 脚本
这是完整的脚本,您可以复制并粘贴到文本文件中。如果您随后使用 .py 扩展名重命名该文件 (pagechecker.py),则可以保存它并双击运行它。
导入请求
导入 json
def get_access_token():
”“”
提示用户输入 Facebook 用户访问令牌。
”“”
return input("请输入您的 Facebook 用户访问令牌:")
def get_pages(access_token):
”“”
使用 Graph API 获取用户有权访问的页面列表。
”“”
url =“https://graph.facebook.com/v17.0/me/accounts”
参数 = {
'access_token':access_token
}
# 向 Graph API 发出请求以获取页面列表
响应 = requests.get(url, params=params)
如果响应.status_code == 200:
页面=response.json().get('数据',
)
返回页面
别的:
print("获取页面时出错:",response.status_code,response.text)
返回
def check_pages_with_post_permission(pages):
”“”
通过查看权限来检查用户可以发布到哪些页面。
”“”
可发布的页面=
对于页中的页:
权限 = page.get('权限',
)
如果权限中有“CREATE_CONTENT”或权限中有“MANAGE”:
postable_pages.append({
'id': page.get('id'),
'名称': page.get('名称')
})
返回 postable_pages
def main():
”“”
主要功能是运行脚本。
”“”
# 获取用户的访问令牌
访问令牌 = get_access_token()
# 获取页面列表
页面 = get_pages(access_token)
如果页面:
print("\n您管理以下页面:")
对于页中的页:
print(f"- {page['name']} (ID: {page['id']})")
# 检查哪些页面有权限发帖
postable_pages = check_pages_with_post_permission(页面)
如果可发布页面:
print("\n您可以发布到以下页面:")
对于 postable_pages 中的页面:
print(f"- {page['name']} (ID: {page['id']})")
别的: