首页 > 编程问答 >Linkedin 图片/视频 API 上传 403 禁止错误

Linkedin 图片/视频 API 上传 403 禁止错误

时间:2024-07-21 08:23:08浏览次数:8  
标签:python linkedin-api

我正在调用 linkedin 图像 API 来初始化上传。我正在使用 insomnia 来拨打电话,我拥有未过期的访问令牌(4 天前创建)以及以下所有权限/范围 ( r_1st_connections_size,r_ads,r_ads_reporting,r_basicprofile,r_organization_admin,r_organization_social,rw_ads,rw_organization_admin,w_member_social,w_organization_social )。以下是在 python 中导出的调用代码。我拥有所有正确的权限,并且 linkedin 帐户是活动经理,但每次我不断收到下面包含的 403 禁止错误。

输入/调用:

import requests

url = "https://api.linkedin.com/rest/images"

querystring = {"action":"initializeUpload"}

payload = {"initializeUploadRequest": {
        "owner": "urn:li:organization:219257106",
        "mediaLibraryMetadata": {
            "associatedAccount": "urn:li:sponsoredAccount:513356194",
            "assetName": "My media library asset"
        }
    }}
headers = {
    "cookie": "lidc=%22b%3DTB09%3As%3DT%3Ar%3DT%3Aa%3DT%3Ap%3DT%3Ag%3D4706%3Au%3D9%3Ax%3D1%3Ai%3D1721511524%3At%3D1721531628%3Av%3D2%3Asig%3DAQEhRosuJdmI8XOks_ogULcqJ4z6ElBm%22; lang=v%3D2%26lang%3Den-us; bcookie=%22v%3D2%26e770df25-8e43-4671-8db7-93d77b371de4%22; lidc=%22b%3DOB24%3As%3DO%3Ar%3DO%3Aa%3DO%3Ap%3DO%3Ag%3D4952%3Au%3D1%3Ax%3D1%3Ai%3D1721511020%3At%3D1721597420%3Av%3D2%3Asig%3DAQEU3F9_YkGbWbcYIHaAzem7-iWdhPs3%22",
    "Content-Type": "application/json",
    "User-Agent": "insomnia/9.3.2",
    "LinkedIn-Version": "202401",
    "X-RestLi-Protocol-Version": "2.0.0",
    "Authorization": "Bearer *Access key is here*"
}

response = requests.request("POST", url, json=payload, headers=headers, params=querystring)

print(response.text)

输出/响应:

{"message":"Accessing this image resource is forbidden. Please check your permissions for this resource","status":403}

Content-Type: application/json
x-restli-error-response: true
x-restli-protocol-version: 2.0.0
Date: Sat, 20 Jul 2024 21:37:14 GMT
X-Li-Fabric: prod-ltx1
Report-To: {"group":"network-errors","max_age":2592000,"endpoints":[{"url":"https://www.linkedin.com/li/rep"}],"include_subdomains":true}
NEL: {"report_to":"network-errors","max_age":1296000,"success_fraction":0.00066,"failure_fraction":1,"include_subdomains":true}
Transfer-Encoding: chunked
Connection: keep-alive
X-Li-Source-Fabric: prod-lor1
X-Li-Pop: prod-lor1-x
X-LI-Proto: http/1.1
X-LI-UUID: AAYdtJ2D23vSK/bl+U5hKQ==
Set-Cookie: lidc="b=TB09:s=T:r=T:a=T:p=T:g=4706:u=9:x=1:i=1721511434:t=1721531628:v=2:sig=AQHyDuL8gOEgjhxrLJrv0Tmw4FnAgczf"
X-LI-Route-Key: "b=TB09:s=T:r=T:a=T:p=T:g=4706:u=9:x=1:i=1721511434:t=1721531628:v=2:sig=AQHyDuL8gOEgjhxrLJrv0Tmw4FnAgczf"

我尝试制作一个新的访问令牌,使用 MediaLibraryMetadata ,我尝试使用视频 api 并遇到同样的问题。我期待一个带有 uploadUrl 的 200 OK 状态代码来上传图像,以及类似以下响应示例的内容。

{
   "value": {
       "uploadUrlExpiresAt": 1650567510704,
       "uploadUrl": "https://www.linkedin.com/dms-uploads/C4E10AQFoyyAjHPMQuQ/uploaded-image/0?ca=vector_ads&cn=uploads&sync=0&v=beta&ut=08zHQjMjAOLqc1",
       "image": "urn:li:image:C4E10AQFoyyAjHPMQuQ"
   }
}

收到 403 禁止错误的原因是尝试将图片上传到赞助帐户的媒体库。目前,Linkedin API 不支持此功能。

虽然可以使用 Images API 和 Videos API 将图片和视频上传到 个人 Linkedin 帐户,但 无法 直接将媒体上传到赞助帐户。

可以在此处找到 Linkedin 的官方文档中提到的此限制: https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/asset-management/media-library?tabs=http#known-issues

可能的解决方法:

  1. 使用 Linkedin Campaign Manager UI: 要将图片上传到的赞助帐户,请继续使用 Linkedin Campaign Manager 界面。这是上传媒体到赞助帐户的推荐方法。

  2. 创建单独的 API 请求以获取资产: 上传图片后,可以使用 Images API 或 Videos API 使用其相应的 URN 检索其详细信息。

请记住,Linkedin 的 API 及其功能可能会发生变化。始终建议查阅其官方文档以获取最新信息和更新。

标签:python,linkedin-api
From: 78773997

相关文章

  • 如何在Python中给jupyter单元标准输入?
    我正在尝试在接受用户输入的jupyter笔记本上运行一个程序,但我不知道如何让它读取标准输入。例如,如果我使用shift-enter:a=input()print(a)运行代码,则单元格指示它正在运行,但不接受我的输入。我如何让它接受输入?你遇到的问题是Jupyternotebook中的代码单元默认......
  • Python:如何从 csvreader 列表中删除括号和单引号?
    Pythonn00b在这里。尝试使用csvreader从文件导入数组并打印一个值,但它添加了括号和单引号。这是我的代码:importrandomimportcsvwithopen('crimes.csv','r')ascsvfile:crimes=list(csv.reader(csvfile))hello=["Hello","Greetings","Hi&q......
  • Python 中的多行输入,支持空行并在控制台中检查“\n”
    您好,亲爱的社区,在解决某个竞赛任务时出现了问题。我解决了它,但由于输入棘手而无法交付。我在谷歌上搜索并尝试了几种找到的方法,但如果应用于此任务,它们中的每一种都有一些弱点。而且我无法完全重现所应用的输入,因为它嵌入在竞赛界面中;我可能只依赖描述。这就是为什么我......
  • Python Pandas - 读取 CSV 或 Excel
    我允许用户上传CSV或Excel文件。我正在使用pandas读取文件并创建数据框。由于我无法预测用户将上传哪种文件类型,因此我将pd.read_csv()和pd.read_excel()包装在try/except块中。ifform.validate_on_submit():input_filename=secure_filename(form.file.da......
  • 如何在 python 脚本中调用 robocopy 来批量复制多个文件夹?
    我正在尝试在网络驱动器之间移动多个大文件夹(>10Gb、>100个子文件夹、>2000个文件)。我尝试过在python中使用Shutil.copytree命令,它工作得很好,只是由于不同的原因它无法复制一小部分(<1%的文件)。我相信robocopy对我来说是最好的选择,因为我可以创建一个记录传输过......
  • 如何在Python中使用装饰器动态创建类方法?
    我正在开发一个Python项目,我需要在运行时动态地为类创建方法。我想使用装饰器根据一些外部配置将这些方法添加到类中。要求是:装饰器应该从外部配置(例如字典)读取方法定义。装饰器应该动态地将这些方法添加到类中。每个生成的方法都应具有配置中指定的自己唯一的实现。以......
  • python 中的可扩展视频文件完整性验证
    我的目录包含约100万个视频文件,嵌套在100个子目录下。我想编写一个python脚本来验证这些文件没有损坏,然后删除损坏的文件。做到这一点最有效的方法是什么?它运行的机器有64个cpu核心。当然,以下是如何在Python中构建可扩展视频文件完整性验证器的步骤,该验证器可以......
  • Python:对很高维的矩阵进行对角化?
    目前我正在研究一个涉及对角化矩阵以获得特征值和特征向量的问题。但现在我想将问题扩展到200,000x200,000的尺寸。我查找了如何将矩阵存储在numpy中,有人建议使用PyTables。看起来很有希望。但我想知道哪里有工具可以帮助对PyTables中的矩阵存储进行对角化。......
  • 除了curses之外,是否有一个python包可以轻松控制终端的输出?
    我现在正在处理一些小项目,我对GUI的偏好是终端中漂亮的文本界面。我宁愿不强迫用户处理Windowscurses二进制文件,所以我正在寻找不同的选项。我已经发现了asciimatics,但我想考虑所有可能的选择。如果有人有任何经验或知道解决此用例的包,我将不胜感激。谢谢你说的没错......
  • 当值来自函数 python unittest 时,如何模拟全局变量
    我必须在python中模拟全局变量,但变量值来自另一个函数。当我导入文件时,这个函数正在运行,但我想要那里的模拟值。secrets.pyimporttracebackimportloggingimportboto3importosimportjsonlogger=logging.getLogger()logger.setLevel(logging.INFO)secret_......