如何使用 Python 和 Graph API 检查可发布的 Facebook 页面

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']})")

别的:

print("\n您无权在任何列出的页面上发帖。")

发表评论

您的电子邮件地址不会被公开, 必填字段已标记 *