📜  php curl上传linkedin图片 - PHP(1)

📅  最后修改于: 2023-12-03 15:18:19.650000             🧑  作者: Mango

PHP使用cURL上传LinkedIn图片

LinkedIn 的营销解决方案提供了上传和共享图片的功能。程序员可以使用 PHP curl library 来上传图片。本文将向您展示如何使用 PHP curl library 将图片上传到 LinkedIn。

前提条件

在开始以 PHP curl library 上传图片之前,您需要满足以下前提条件:

  • 您需要有一个 LinkedIn 的帐号。如果您没有帐号,请先注册。
  • 您需要请求一个 LinkedIn 的广告 API 访问 权限。 如果您还没有请求,请参考 获取广告 API 访问权限指南
  • 您需要安装使用 PHP curl library 的 PHP 版本。如果您还没有安装,请点击此链接下载并安装:PHP curl library
获取接入令牌

使用 OAuth2 授权,您需要获取接入令牌,以使用广告 API。下面是 OAuth2 授权授权的步骤:

1.创建应用

- 在LinkedIn的开发平台创建应用中心,得到 client id 和 secret

2.构造请求 URL

- 请求的URL模式:
https://www.linkedin.com/oauth/v2/accessToken?grant_type=client_credentials&client_id={your-client-id}&client_secret={your-client-secret}
- client_id和client_secret 由上一步得到
- 请求参数说明:  
    * grant_type:此值必须设置为`client_credentials`

3.发送请求并获取接入令牌

- 可以使用 curl 模拟请求以下接口并提取 access_token:
https://www.linkedin.com/oauth/v2/accessToken?grant_type=client_credentials&client_id={your-client-id}&client_secret={your-client-secret}
使用 PHP curl library 上传 LinkedIn 图片

有了接入令牌,就可以使用 PHP curl library 来上传图片。

你需要准备好以下参数:

  1. 图片的完整路径和文件名。
  2. 图片的 Mime 类型。
  3. 图片的字节大小。

下面是一个使用 PHP cURL library 上传 LinkedIn 图片的示例代码:

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.linkedin.com/v2/assets?action=registerUpload',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => '{"registerUploadRequest":{"owner":"urn:li:adAccount:{adAccountId}","serviceRelationships":[{"relationshipType":"OWNER","identifier":"urn:li:userGeneratedContent"}],"recipes":["urn:li:digitalmediaRecipe:feedshare-image"]}}',
  CURLOPT_HTTPHEADER => array(
    'X-Restli-Protocol-Version: 2.0.0',
    'Authorization: Bearer {accessToken}',
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo 'cURL Error #:' . $err;
} else {
  echo $response;
}
?>

在上面的代码中,一些地方需要注意:

  • 在 CURLOPT_URL 参数中,你需要更改的是 {adAccountId} 和 {accessToken}。 {adAccountId} 是你 LinkedIn 广告帐户的标识符, {accessToken} 是你在上一步中获取的接入令牌。
  • 在 CURLOPT_POSTFIELDS 参数中,你需要包含某些元数据,例如 owner 和 serviceRelationships 。这里的代码已经将这些字段中的 adAccountId 和 user identifier 更改为你自己的值。
  • 在 CURLOPT_HTTPHEADER 参数中,你需要设置 X-Restli-Protocol-Version、Authorization 和 Content-Type 的值。 X-Restli-Protocol-Version 和 Content-Type 参数的值应分别为 '2.0.0' 和 'application/json'。
  • 使用上述代码的响应包含有关上传的项的元数据,例如 bucket_name 和 object_key 。您应该在后续 API 调用中使用这些值。
结论

本文向您展示了如何使用 PHP curl library 将图片上传到 LinkedIn。如果您想将此示例代码集成到自己的应用程序中,请按照上文中的说明更改你的参数值。

参考文献