Instagram 图 API:媒体缩略图 URL
Instagram Graph API: Media Thumbnail URL
我在企业帐户中使用 Instagram Graph API,几乎一切正常。我已经创建了 Facebook SDK 的 WordPress 端口,检索媒体项的函数如下所示([=36= 的一部分],$fb
对象已经使用 default_access_token
进行了身份验证class 构造函数):
public function get_media( $business_account_id = '', $limit = 15 ) {
$limit = absint( $limit );
try {
$response = $this->fb->get( "/{$business_account_id}?fields=media.limit({$limit}){media_url,caption,thumbnail_url,permalink}" );
return $response->getDecodedBody();
} catch ( \Facebook\Exceptions\FacebookResponseException $e ) {
return $e->getMessage();
} catch ( \Facebook\Exceptions\FacebookSDKException $e ) {
return $e->getMessage();
}
}
如您所见,我请求的字段是:media_url
、caption
、thumbnail_url
和 permalink
. API 响应所有字段,除了 thumbnail_url
:
array(2) {
["media"]=>
array(2) {
["data"]=>
array(15) {
[0]=>
array(4) {
["media_url"]=>
string(91) "https://scontent.xx.fbcdn.net/..."
["caption"]=>
string(356) "[...]"
["permalink"]=>
string(40) "https://www.instagram.com/p/.../"
["id"]=>
string(17) "..."
}
...
}
["paging"]=>
array(2) {
["cursors"]=>
array(2) {
["before"]=>
string(123) "..."
["after"]=>
string(122) "..."
}
["next"]=>
string(438) "https://graph.facebook.com/v2.10/..."
}
}
["id"]=>
string(17) "..."
}
我使用 Graph API Explorer 得到了相同的响应,这让我觉得与我的应用程序有关,可能是权限(目前为 manage_pages
和 instagram_basic
)、特殊设置或一个错误(我不这么认为,但以防万一...)。
我错过了什么?
2021 年更新
文档已更新,旧的 link 不再有效;这是新的 link:
https://developers.facebook.com/docs/instagram-basic-display-api/reference/media/#fields
措辞已更新,表明 thumbnail_url
字段仅在 VIDEO
媒体上可用。
原答案
看起来像 thumbnail_url
is available on video IG Media objects only。我的解决方案是使用 PHP 处理图像以生成调整大小的媒体对象版本并缓存它们,这样我就不会在每次请求时都重新生成它们。
这个答案找到了一种使用 permalink
字段获取缩略图的方法。
我在企业帐户中使用 Instagram Graph API,几乎一切正常。我已经创建了 Facebook SDK 的 WordPress 端口,检索媒体项的函数如下所示([=36= 的一部分],$fb
对象已经使用 default_access_token
进行了身份验证class 构造函数):
public function get_media( $business_account_id = '', $limit = 15 ) {
$limit = absint( $limit );
try {
$response = $this->fb->get( "/{$business_account_id}?fields=media.limit({$limit}){media_url,caption,thumbnail_url,permalink}" );
return $response->getDecodedBody();
} catch ( \Facebook\Exceptions\FacebookResponseException $e ) {
return $e->getMessage();
} catch ( \Facebook\Exceptions\FacebookSDKException $e ) {
return $e->getMessage();
}
}
如您所见,我请求的字段是:media_url
、caption
、thumbnail_url
和 permalink
. API 响应所有字段,除了 thumbnail_url
:
array(2) {
["media"]=>
array(2) {
["data"]=>
array(15) {
[0]=>
array(4) {
["media_url"]=>
string(91) "https://scontent.xx.fbcdn.net/..."
["caption"]=>
string(356) "[...]"
["permalink"]=>
string(40) "https://www.instagram.com/p/.../"
["id"]=>
string(17) "..."
}
...
}
["paging"]=>
array(2) {
["cursors"]=>
array(2) {
["before"]=>
string(123) "..."
["after"]=>
string(122) "..."
}
["next"]=>
string(438) "https://graph.facebook.com/v2.10/..."
}
}
["id"]=>
string(17) "..."
}
我使用 Graph API Explorer 得到了相同的响应,这让我觉得与我的应用程序有关,可能是权限(目前为 manage_pages
和 instagram_basic
)、特殊设置或一个错误(我不这么认为,但以防万一...)。
我错过了什么?
2021 年更新
文档已更新,旧的 link 不再有效;这是新的 link:
https://developers.facebook.com/docs/instagram-basic-display-api/reference/media/#fields
措辞已更新,表明 thumbnail_url
字段仅在 VIDEO
媒体上可用。
原答案
看起来像 thumbnail_url
is available on video IG Media objects only。我的解决方案是使用 PHP 处理图像以生成调整大小的媒体对象版本并缓存它们,这样我就不会在每次请求时都重新生成它们。
这个答案找到了一种使用 permalink
字段获取缩略图的方法。