图谱 API 版

公共主页动态

使用此端点以获取动态并将之发布到公共主页。公共主页动态中包含与 Facebook 公共主页进行的任何互动,例如:此公共主页发布的帖子和链接、此公共主页的访客以及已标记此公共主页的公开帖。

另请参阅

读取

Facebook 公共主页帖子。

新版公共主页体验

新版公共主页体验支持此 API。

要求

请求访问口令的用户必须能在此公共主页上执行以下其中一项任务:

  • CREATE_CONTENT – 以公共主页身份在此公共主页上发布内容
  • MANAGE – 分配和管理公共主页任务
  • MODERATE
    • 以公共主页身份回复对公共主页帖子的评论
    • 删除对公共主页帖子的评论
    • 如果 Instagram 帐户已关联到公共主页,可从 Facebook 将内容发布到 Instagram、回复和删除评论、发送私信、同步企业联系方式,以及创建广告。

并已向应用授予以下必要权限:

如果您不是公共主页的所有者或管理者,您将需要:

如要避免在使用主页公开内容访问功能时出现流量限制问题,建议您使用系统用户访问口令

请求示例

图谱 API 探索工具
GET /v21.0/{page-id}/feed HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->get(
    '/{page-id}/feed',
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{page-id}/feed",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{page-id}/feed",
    null,
    HttpMethod.GET,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{page-id}/feed"
                                      parameters:params
                                      HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

JSON 响应示例

{
  "data": [
    {
      "created_time": "2019-05-17T16:24:04+0000",
      "message": "Become a Facebook developer!",
      "id": "{page-id}_2191966997525824"
    },
    {
      "created_time": "2019-02-26T21:35:42+0000",
      "message": "Hello world!",
      "id": "{page-id}_2072371269485398"
    },
...
    {
      "created_time": "2018-01-26T20:57:22+0000",
      "message": "Friday Funday!",
      "id": "{page-id}_1569752556413941"
    }
  ],
  "paging": {
    "cursors": {
      "before": "Q2c4U1pXNT...",
      "after": "Q2c4U1pXNT..."
    },
    "next": "https://graph.facebook.com/vX.X/{page-id}/feed?access_token={your-page-access-token}&pretty=0&limit=25&after=Q2c4U1pXNT..."
  }
}

限制

  • 过期帖子 – 如果帖子已过期,您将无法再使用图谱 API 查看帖子的内容。
  • 最大帖子读取量
    • API 每年返回大约 600 个经排名的已发布帖子。
    • 由于 limit 字段的限制,您最多只能读取 100 个动态帖子。如果尝试读取更多帖子,您会收到告知您不要超过 100 个帖子的错误消息。
  • 消息行动号召 - 由于公共主页无法向其他公共主页发送消息,因此您无法使用其他公共主页的访问口令访问带有消息行动号召的帖子。
  • 公开的身份识别信息 - 除非您使用公共主页访问口令提出请求,否则用户信息不会包含在响应中。
  • 已发布的帖子 - 查询 /{page-id}/feed 端点时,系统将返回已发布的帖子和未发布的帖子。使用 is_published 字段可仅返回已发布的帖子。
  • 分享的帖子 - 如果无法通过所使用的访问口令查看原始帖子,则分享其他公共主页或用户帖子的公共主页帖子也可能不可见。
  • 标记的帖子 - 当您使用 /{page-id}/tagged 来显示标记过此公共主页的帖子时,显示结果会包含来自其他公共主页的帖子,但前提是这些公共主页必须真实可信。
  • 用户代理 - 这些图谱 API 调用允许的可用用户代理如有更改,恕不另行通知。如果遇到问题,您可能需要更改为更新版本的特定用户代理。
  • 视频帖 - 如需获取视频帖清单,申请人必须是相应公共主页的管理员。
  • Reels - 如需获取发布到您公共主页的 Reels 清单,请使用公共主页 VideoReels 连线

限制:动态端点会获取所有帖子(已发布和未发布)。唯一区别是未发布的帖子不会在实际动态中列出。但是,您可以将 is_published 字段添加到 /feed 端点,以告知开发者 /feed 端点中列出的帖子是否已发布

字段

名称类型说明
idstring

帖子编号。

actionsobject

帖子、评论、赞和分享上的操作链接。

admin_creatorobject

公共主页帖子的管理员创建者。如果公共主页只有一位管理员,则不会返回任何数据。需要公共主页访问口令和 business_management 权限。

idint

用户、应用或公司的编号。

namestring

用户、应用或公司的名称。

allowed_advertising_objectsstring

可以在其下宣传此帖子的唯一目标。

applicationobject

发布此帖子的应用的相关信息。

attachmentsobject

与动态相关的任何附件。请参阅动态附件节点参考资料,获取 attachments 字段。

backdated_timefloat

回溯帖子的回溯时间。对于常规帖子,此字段设置为 null。

call_to_actionobject

在任何公共主页帖子中发布的移动应用互动广告中使用的行动号召类型。

contextobject

在任何公共主页帖子中发布的移动应用互动广告中使用的行动号召类型。

can_reply_privatelyboolean

公共主页浏览者能否私信回复此帖子。需要 read_page_mailboxes 权限。

caption

已停用 v3.3 及以上版本的公共主页帖子。

string

帖子中显示在 name 下方的的链接说明。caption 必须是真实的网址,并且必须在用户点击时准确反映出所浏览的网址及相关广告主或公司。

child_attachmentsobject

多链接分享帖子的子分享内容。

created_timefloat

帖子的最初发布时间。对于和生活纪事相关的帖子,此项是该生活纪事的日期和时间。

description

已停用 v3.3 及以上版本的公共主页帖子。改用 attachments{description}

string

对帖子中链接的说明(显示在 caption 下方)。

feed_targetingobject

控制此帖子动态定位的对象。这些小组中的任何人都更有可能看到这篇帖子,其他人看到的可能性较小,但仍有可能看到。此处显示的任何定位字段都可以使用,但均为非必填项(仅适用于公共主页)。

age_maxint

最大年龄

age_minint

数值必须为 13 或以上。默认值为 0

citiesint

目标城市的值。使用 adcitytype查找定位选项,并使用返回的 key 来指定。

college_yearsint

大学毕业年份的整数数组。

countriesstring

目标国家/地区的值。您最多可以指定 25 个国家/地区。使用 ISO 3166 格式代码

education_statusesint

用于根据教育程度定位的整数数组。使用 1 表示高中生,2 表示在读大学生,3 表示大学毕业生(或同等学力)。

gendersint

定位特定性别。1 表示定位所有男性查看者,2 表示女性查看者。默认值为同时定位以上两者。

interested_in

已停用。

int表示基于用户个人主页中“恋爱取向”字段的定位。您可以指定整数 1 表示“男性”,2 表示“女性”。默认值为全部类型。请注意,受当地法律限制,大多数欧洲国家/地区和加拿大不支持“恋爱取向”定位。
interestsint

一个或多个公共主页编号,用于定位公共主页的粉丝。使用公共主页类型获取可作为定位选项的可用编号,并使用返回的编号来指定。

localesint

目标区域。使用 adlocaletype查找定位选项,并使用返回的 key 来指定。

regionsarray

目标地区的值。使用 adregiontype查找定位选项,并使用返回的 key 来指定。

relationship_statusesint

用于根据感情状况定位的整数数组。使用 1 表示“单身”,2 表示“恋爱中”,3 表示“已婚”,4 表示“已订婚”。默认值为全部类型。

from

object

创建帖子的公共主页、小组或事件的 nameid。如果您使用用户访问口令读取此字段,则其仅返回当前用户。

full_picturestring

帖子中发布或从帖子中的链接抓取的全尺寸照片的网址。如果照片的最大尺寸超过 720 像素,则系统会调整照片尺寸,将最大尺寸设置为 720 像素。

iconstring

表示此帖子类型的图标链接。

instagram_eligibilityenum{}

帖子是否可以在 Instagram 上推广。如果可以推广,则返回枚举 eligible。否则,将返回说明为何不能推广的枚举:

  • ineligible_caption_mentions_not_allowed
  • ineligible_caption_too_long
  • ineligible_media_aspect_ratio
  • ineligible_media_dimension
  • ineligible_media_square_aspect_ratio
  • ineligible_media_square_dimension
  • ineligible_post_type
  • ineligible_unknown_error
  • ineligible_video_length
is_eligible_for_promotionboolean

表示帖子是否符合推广条件。

is_expiredboolean

表示帖子是否具有已超期的过期时间。

is_hiddenboolean

表明帖子是否标记为隐藏(仅适用于公共主页)。此字段可将帖子隐藏于公共主页的时间线中,但用户仍可在 Facebook 的其他地点(如链接)中见到该帖子。

is_instagram_eligiblestring

帖子是否可以在 Instagram 上推广。

is_popularboolean

表示帖子是否为热门帖子。取决于以覆盖人数百分比表示的总操作数是否超过某个阈值。

is_publishedboolean

表示定时帖是否已发布(仅适用于定时公共主页帖子,对于用户帖子和即时发布的帖子,此值一律为 true)。请注意,对于在广告创建过程中创建的公共主页帖子,此值一律为 false

is_sphericalboolean

表示帖子是否为全景视频帖。

link

已停用 v3.3 及以上版本的公共主页帖子。

改用 attachments{unshimmed_url}

string

附加至此帖子的链接。

messagestring

帖子中的状态消息。

message_tagsarray

message 文本中已标记个人主页的数组。如果您使用用户的用户访问口令读取此字段,则其仅返回当前用户。

lengthint

标记文本的长度,用 unicode 代码点表示。

idstring

标记的个人主页编号。

namestring

用于标记个人主页的文本。

offsetint

message 中标记文本的首个字符位置,用 unicode 代码点表示。

typeenum{}

已标记的个人主页的类型:userpagegroup

name

已停用 v3.3 及以上版本的公共主页帖子。

改用 attachments{title}

string

link 的名称。

object_id

已停用 v3.3 及以上版本的公共主页帖子。

改用 attachments{target{id}}

string

附于帖子中的任何已上传照片或视频的编号。

parent_idstring

此帖子的父级帖子的编号(如果存在)。例如,如果此动态为“有帖子提及了您的公共主页”,则 parent_id 是该提及所在的原始帖子。

permalink_urlstring

指向 www.facebook.com 上帖子的永久静态网址。示例:https://www.facebook.com/FacebookForDevelopers/posts/10153449196353553

placestring

与此帖子相关的地点的编号。

privacyobject

帖子的隐私设置。

allowstring

如果 valueCUSTOM,则此项是一个以逗号分隔的编号列表,其中包含可以查看帖子的用户和好友名单(如有)。

denystring

如果 valueCUSTOM,则此项是一个以逗号分隔的编号列表,其中包含无法查看帖子的用户和好友名单(如有)。

descriptionstring

说明隐私设置的文本,与 Facebook 上显示的一样。

friendsenum{}

如果 valueCUSTOM,则此项表示哪个好友小组可以查看帖子。该字段包含以下值:

  • ALL_FRIENDS
  • FRIENDS_OF_FRIENDS
  • SOME_FRIENDS
valueenum{}

实际的隐私设置。该字段包含以下值:

  • ALL_FRIENDS
  • CUSTOM
  • EVERYONE
  • FRIENDS_OF_FRIENDS
  • SELF
promotable_idstring

用于推广无法直接推广的动态的帖子编号。

promotion_eligibility

已停用。请参阅 is_eligible_for_promotion

boolean表示帖子是否符合推广条件。
promotion_status

已停用。请参阅 is_eligible_for_promotion

string推广的状态。需要公共主页管理员权限。可能的值:
active推广正在进行。
draft推广仍处于草稿模式。
extendable推广的营销活动已结束,但可以重新开启。
finished推广已结束。
inactive没有正在进行的推广。
ineligible

帖子不符合速推的条件。了解帖子不符合条件的原因。

paused推广已暂停。
pending推广仍在审核中。
rejected推广未通过审核流程。
propertiesobject

任何附加视频的属性列表,例如视频长度。

namestring

属性的名称。

textstring

属性的值。

hrefstring

任何与属性相关的链接。

sheduled_publish_timefloat

帖子计划发布时间的 Unix 时间戳。

sharesobject

此帖子的分享次数。分享次数可能包括已删除的帖子和出于隐私原因您无法查看的帖子。

source

已停用 v3.3 及以上版本的公共主页帖子。

改用 attachments{media{source}}

string

附于帖子中的任何 Flash 影片或视频文件的网址。

status_typeenum{}

状态更新类型。该字段包含以下值:

  • added_photos
  • added_video
  • app_created_story
  • approved_friend
  • created_event
  • created_group
  • created_note
  • mobile_status_update
  • published_story
  • shared_story
  • tagged_in_photo
  • wall_post
storystring

用户无意生成的动态(例如,添加照片时生成的动态)的文本。必须在应用中启用“包含近期活动动态”迁移才能检索此字段。

story_tagsarray

帖子说明中的标签列表。

subscribedboolean

表示用户是否已订阅帖子。

targetingobject

限制此内容受众的对象。只有指定人口统计数据中的受众可以查看此内容。人口统计数据是附加部分。每个附加值将其受众添加到累计目标受众。这些值不会覆盖任何可能存在的主页层级人口统计限制。

countriesstring

目标国家/地区的值,使用 ISO 3166 格式代码

localesint

目标区域。可能会返回 adlocale 类型的定位选项

regionslist<int>

目标地区的值。可能会返回 adregion 类型的定位选项

citieslist<int>

已排除城市的值。可能会返回 adcity 类型的定位选项

to

object

帖子中提及或定位的个人主页。如果您使用用户访问口令读取此字段,则其仅返回当前用户。

type

已停用 v3.3 及以上版本的公共主页帖子。

改用 attachments{media_type}。如果没有 attachmentsmedia_type=link,则此值与 type=status 相同。

enum{}

表明此帖子对象类型的字符串。enum 值包括:

  • link
  • offer
  • photo
  • status
  • video
updated_timefloat

帖子的上次更新(即创建或编辑帖子,或者用户对帖子进行评论)时间,以 Unix 时间戳表示。

video_buying_eligibilityarray

表示是否可以使用不同视频购买选项来推广帖子。此字段会在视频符合条件时返回空列表。否则,其返回的列表会说明无法推广帖子的原因。

with_tags

object

被标记为附带帖子发布者的个人主页。如果您使用用户访问口令读取此字段,则其仅返回当前用户。


图谱 API 和市场营销 API 3.3 及更高版本将于 2019 年 4 月 30 日停用此端点。在 2019 年 7 月 30 日前,过去 90 天内已使用此端点的应用可以继续通过 3.2 及更低版本的 API 使用此端点。从 2019 年 4 月 30 日起,过去 90 天内未曾使用此端点的应用将无法使用此端点。

可推广编号

在查找可以速推的帖子时,必须使用 promotable_id 来创建广告。大多数情况下,此编号与 post_id 相同,但并非总是如此。注意:帖子被速推后,您必须有权访问已绑定的广告账户,才能编辑该帖子。

请求示例

curl -i -X GET \
 "https://graph.facebook.com/{your-page-id}/feed
    ?fields=is_eligible_for_promotion,promotable_id
        &access_token={your-page-access-token}"
GraphRequest request = GraphRequest.newGraphPathRequest(
  accessToken,
  "/{your-page-id}/feed",
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});

Bundle parameters = new Bundle();
parameters.putString("fields", "is_eligible_for_promotion,promotable_id");
request.setParameters(parameters);
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{your-page-id}/feed"
           parameters:@{ @"fields": @"is_eligible_for_promotion,promotable_id",}
           HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{your-page-id}/feed',
  'GET',
  {"fields":"is_eligible_for_promotion,promotable_id"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->get(
    '/{your-page-id}/feed?fields=is_eligible_for_promotion,promotable_id',
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

响应示例

{
  "data": [
    {
      "is_eligible_for_promotion": true,
      "promotable_id": "1353269864728879_1943344825721377",
      "id": "1353269864728879_1943344825721377"
    },
    {
      "is_eligible_for_promotion": true,
      "promotable_id": "1353269864728879_1943313139057879",
      "id": "1353269864728879_1943378089051384"
    },
    {
      "is_eligible_for_promotion": false,
      "promotable_id": "1353269864728879_1942095249179668",
      "id": "1353269864728879_1942095249179668"
    },
...

请访问帮助中心,了解帖子不能速推的原因。

请访问我们的帖子参考文档,获取所有可用的帖子字段。

发布

您可以使用此连线发布到公共主页。必须提供 linkmessage

新版公共主页体验

新版公共主页体验支持此 API。

要求

如果要执行 CREATE_CONTENT 任务,您将需要:

帖子将以该公共主页的身份显示。

权限

注意:如果查看器或应用无法查看 link 的网址,则帖子将无法发布。

POST /v21.0/{page-id}/feed HTTP/1.1
Host: graph.facebook.com

message=This+is+a+test+message
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{page-id}/feed',
    array (
      'message' => 'This is a test message',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{page-id}/feed",
    "POST",
    {
        "message": "This is a test message"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
Bundle params = new Bundle();
params.putString("message", "This is a test message");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{page-id}/feed",
    params,
    HttpMethod.POST,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"message": @"This is a test message",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{page-id}/feed"
                                      parameters:params
                                      HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

响应

{"id":"post-id"}

此端点支持先写入后读取,并且可以即时返回由读取操作返回的任何字段。

图谱探索工具示例

在图谱探索工具中使用 POST {page-id}/feed 进行如下测试:

字段

名称类型描述
actionsarray

附加于帖子的操作链接

linkstring

操作链接本身的网址。

namestring

操作链接的名称或标签。

backdated_timefloat

指定过去的某个时间,以将此帖子回溯到该时间。

backdated_time_granularityenum{year, month, day, hour, minute}

控制回溯帖子的显示方式。例如,如果您选择 month,则帖子会显示为 2 months ago,而不是确切日期。

child_attachments

object

用于在帖子中指定多个链接。最少可以指定 2 个对象,最多可以指定 5 个对象。如果您设置

multi_share_optimized

为“true”,则您最多可以上传 10 个对象,但 Facebook 只会显示前 5 个。

descriptionstring

用于显示价格、折扣或网站网域。如果未指定,则会提取并使用关联主页的内容。通常会截断该字段 30 个字符后的内容。

image_hashstring

广告图库中链接关联的预览图像的哈希值(如要获得最佳显示效果,宽高比须为 1:1,且尺寸至少须达到 458x458 像素)。必须指定 pictureimage_hash

linkstring

附加至帖子的链接网址。此为必要字段。

namestring

链接预览的标题。如果未指定,则会使用关联主页的标题。通常会截断该字段 35 个字符后的内容。建议您设置唯一的 name,因为 Facebook 界面会展示 name 字段报告的操作。

picturestring

此网址会确定与链接相关联的预览图像(如要获得最佳显示效果,宽高比须为 1:1,且尺寸至少须达到 458x458 像素)。必须指定 pictureimage_hash

feed_targetingobject

控制此内容动态定位的对象。这些小组中的任何人都更有可能看到此内容,其他人看到的可能性较小,但仍有可能看到。您可以使用此处显示的任何定位字段,但它们并非必要项。

age_maxint

最大年龄。不得超过 65。

age_minint

不得低于 13。默认值为 0。

college_yearsint[]

大学毕业年份的整数数组。

education_statusesint[]

用于根据教育程度定位的整数数组。使用 1 表示高中生,2 表示在读大学生,3 表示大学毕业生(或同等学力)。

genderslist<unsigned int32>

定位特定性别。1 表示定位所有男性查看者,2 表示女性查看者。默认值为同时定位以上两者。

geo_locationsobject

通过此对象,您可以指定多个不同的地理位置。请参阅我们的定位指南,了解更多有关此对象的信息。

interestsint[]

使用一个或多个编号,将目标指定为粉丝。使用 type=audienceinterest 获取可能的编号,将之用作定位选项,并使用返回的编号来加以指定。

localesint

已定位受众的语言设置。使用 adlocaletype查找定位选项,并使用返回的 key 来指定。

relationship_statuseslist<unsigned int32>

用于根据感情状况定位的整数数组。使用 1 表示单身,2 表示“恋爱中”,3 表示已婚,4 表示已订婚。默认值为全部类型。

linkstring

附加至帖子的链接网址。必须提供 linkmessage。与 link 关联的附加字段显示于下方。如需了解相关限制,请参阅自定义链接版块

descriptionstring

覆盖链接预览中的描述

namestring

覆盖链接预览的标题。

picturestring

确定与链接关联的预览图片。

thumbnailfile

预览与您上传的链接相关联的图像。

messagestring

帖子的正文。该消息可以包含提及的 Facebook 公共主页@[page-id]

multi_share_end_cardBoolean

如果设置为 false,则在使用 child_attachments 时不会显示轮播链接帖子的结束图卡。默认值为 true

multi_share_optimizedBoolean

如果设置为 true,则仅当帖子用于广告中时,Facebook 才会自动选择 child_attachments 中的链接顺序。否则将保留 child_attachments 的原始排序。默认值为 true。

object_attachmentstring

用户相册中现有图片的 Facebook 编号将用作缩略图。用户必须是照片的所有者,并且该照片不得为消息附件的一部分。

placestring

此帖子关联位置的公共主页编号。

publishedBoolean

是否有显示关于此最新发布对象的动态。默认值为 true,即在动态中显示动态。指定操作参数后,not 支持此字段。可以在广告中使用隐藏贴。

scheduled_publish_timetimestamp

UNIX 时间戳表示帖子的发布时间。时间须为 API 请求后 10 分钟到 75 日之间。

tagscsv[string]

逗号分隔清单,用于列出此帖子中所标记用户的用户编号。您必须指定 place,方可指定此字段。

targetingobject

限制此内容受众的对象。任何不在这些人口统计数据中的用户都将无法查看此内容。这不会覆盖任何可能存在的公共主页层级人口统计数据限制。

age_minint

值可以为 13、15、18、21 或 25。

geo_locationsobject

通过此对象,您可以指定多个不同的地理位置。请参阅我们的定位指南,了解更多有关此对象的信息

向公共主页帖子添加感受或活动

向公共主页帖子添加感受或活动和图标。在发布感受或活动时,需要 og_action_type_idog_object_idog_icon_id 是可选项,但如果不使用,系统会根据 og_object_id 自动提供图标。

字段

名称 描述

og_action_type_id

操作,即感受观看等。

og_icon_id

可能表示操作类型的图标,即笑脸、电影图标等。

og_object_id

操作目标,即开心电影等。这可以是预定义对象或任何 page_id

帖子示例

POST /v21.0/page-id/feed HTTP/1.1
Host: graph.facebook.com

message=This+is+a+test+activity&og_action_type_id=383634835006146&og_object_id=136050896551329&og_icon_id=609297155780549
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/page-id/feed',
    array (
      'message' => 'This is a test activity',
      'og_action_type_id' => '383634835006146',
      'og_object_id' => '136050896551329',
      'og_icon_id' => '609297155780549',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/page-id/feed",
    "POST",
    {
        "message": "This is a test activity",
        "og_action_type_id": "383634835006146",
        "og_object_id": "136050896551329",
        "og_icon_id": "609297155780549"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
Bundle params = new Bundle();
params.putString("message", "This is a test activity");
params.putString("og_action_type_id", "383634835006146");
params.putString("og_object_id", "136050896551329");
params.putString("og_icon_id", "609297155780549");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/page-id/feed",
    params,
    HttpMethod.POST,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"message": @"This is a test activity",
  @"og_action_type_id": @"383634835006146",
  @"og_object_id": @"136050896551329",
  @"og_icon_id": @"609297155780549",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/page-id/feed"
                                      parameters:params
                                      HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

响应为 post_id

公共主页隐藏帖

我们支持下列类型的公共主页隐藏帖:

帖子类型描述

链接

链接公共主页帖子是向您的网站分享链接最有成效的方法。支持选择性替代图像和额外文本。
请注意:Youtube 视频链接属于链接公共主页帖子。

照片

此为配有文本说明且说明中包含可选链接的照片公共主页帖子。

帖子

此为配有文本说明的公共主页帖子。

视频

此为配有可选文本说明的视频公共主页帖子。

公共主页隐藏帖与已发布公共主页帖子的处理方式相同,不过前者不会在 /feed 中出现。

如要查看公共主页隐藏帖列表,请查询 is_published 字段。

curl -i -X GET \
 "https://graph.facebook.com/{page-id}/feed
 ?fields=is_published
 &access_token={your-page-access-token}"
GraphRequest request = GraphRequest.newGraphPathRequest(
  accessToken,
  "/{page-id}/feed",
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});

Bundle parameters = new Bundle();
parameters.putString("fields", "is_published");
request.setParameters(parameters);
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{page-id}/feed"
           parameters:@{ @"fields": @"is_published",}
           HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{page-id}/feed',
  'GET',
  {"fields":"is_published"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->get(
    '/{page-id}/feed?fields=is_published',
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

如需查看 Facebook.com 上的帖子,您可以前往 https://www.facebook.com/{post-id} 查看大多数帖子类型,或者检索帖子的 actions 字段,此字段会包含用户可以对帖子点赞或评论的网址。

公共主页帖子 call_to_action

您可以使用行动号召按钮来完善您的链接公共主页帖子。您可以将以下 call_to_action 字段添加到新的链接公共主页帖子中。

名称类型描述

call_to_action

object

可以指定行动号召按钮的对象。这应该是您希望用户在查看您的帖子时采取的操作。点击此按钮会使用户访问您指定的链接。

type

string

确定行动号召按钮的文本。可用值如下:

BOOK_TRAVEL。行动号召显示为“立即预订”。

BUY_NOW。行动号召显示为“立即购买”。仅用于针对虚拟商品的桌面应用广告

CALL_NOW。行动号召显示为“立即致电”。仅用于本地市场知名度广告

DOWNLOAD。行动号召显示为“下载”。

GET_DIRECTIONS。行动号召显示为“查询路线”。必须在 link 字段中指定坐标。仅用于本地市场知名度广告

GET_QUOTE。行动号召显示为“获取线索广告的报价”。

INSTALL_APP。行动号召显示为“立即安装”。

INSTALL_MOBILE_APP。行动号召显示为“立即安装”。仅用于移动应用广告

LEARN_MORE。行动号召显示为“了解更多”。

LIKE_PAGE。行动号召显示为“点赞公共主页”。仅用于公共主页获赞数目标中的广告。

LISTEN_MUSIC。行动号召显示为“听音乐”。

MESSAGE_PAGE。行动号召显示为“发送消息”。仅用于本地市场知名度广告

NO_BUTTON。不显示行动号召。

OPEN_LINK。行动号召显示为“打开链接”。仅用于网站点击量目标中的广告。

PLAY_GAME。行动号召显示为“玩游戏”。仅用于桌面应用广告

SHOP_NOW。行动号召显示为“去逛逛”。仅用于网站转化量目标中的广告。

SIGN_UP。行动号召显示为“注册”。

SUBSCRIBE。行动号召显示为“订阅线索广告”。

USE_APP。行动号召显示为“使用应用”。

USE_MOBILE_APP。仅用于移动应用广告

WATCH_MORE。行动号召显示为“更多视频”。

WATCH_VIDEO。行动号召显示为“观看视频”。

自定义链接公共主页帖子图像

利用自定义链接图像向公共主页发布链接。动态的附件会呈现检索自链接的图像。目前,您可以在可选 picture 参数中提供新图像网址,以覆盖该图像。thumbnail 参数亦可提供类似功能,二者的关键区别在于此参数接受在 API 调用中上传到 Facebook 的本地图像文件。

权限

  • 必须使用公共主页访问口令。
  • 必须是发帖公共主页所拥有的链接。

如要验证链接所有权,请检查 URL 节点上的 ownership_permissions{can_customize_link_posts} 字段。您必须在发布新链接前调用此端点。如果没有此步骤,自定义链接公共主页帖子将无法用于未抓取链接。详情请参阅我们的链接所有权指南。2.10 及更低版本的 picturenamethumbnaildescription 均已停用。所有版本的 caption 均已停用。

参数类型描述

description

string

链接的说明(在链接文字下方显示)。如果未指定,此字段会自动填充从链接获取的信息,通常为页面的标题。

name

string

链接附件的名称。此字段会自动填充从链接获取的信息。

picture

string

图像的网址。系统将从 picture 中提供的网址提取图像

thumbnail

文件

要上传的图像文件。接受 .jpg.jpeg.gif.png。系统将从 thumbnail 中上传的文件提取图像

限制

  • thumbnail 参数仅可用于 Facebook 公共主页上的链接帖子。
  • thumbnail 参数的优先级高于 picture 参数。如果二者皆有提供,则不使用 picture 参数。
  • thumbnail 参数接受扩展名为 .jpg.jpeg.gif.png 的图像。
  • 批量请求中不支持 thumbnail 参数。

向公共主页发布链接

您可以向 /page/feed 连线发送 POST 请求,以向公共主页发布链接。将 publish 参数设为 1 即可立即发布帖子,设为 0 即可创建隐藏帖以供日后发布。

请求示例

curl -i -X POST "https://graph.facebook.com/{your-page-id}/feed
  ?message=Become%20a%20Facebook%20developer!
  &link=https%3A%2F%2Fdevelopers.facebook.com
  &published=1
  &access_token={your-page-access-token}"
GraphRequest request = GraphRequest.newPostRequest(
  accessToken,
  "/{your-page-id}/feed",
  new JSONObject("{\"message\":\"Become a Facebook developer!\",\"link\":\"https://developers.facebook.com\",\"published\":\"1\"}"),
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{your-page-id}/feed"
           parameters:@{ @"message": @"Become a Facebook developer!",@"link": @"https://developers.facebook.com",@"published": @"1",}
           HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{your-page-id}/feed',
  'POST',
  {"message":"Become a Facebook developer!","link":"https://developers.facebook.com","published":"1"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->post(
    '/{your-page-id}/feed',
    array (
      'message' => 'Become a Facebook developer!',
      'link' => 'https://developers.facebook.com',
      'published' => '1'
    ),
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

响应示例

{"id":"{post-id}"}

含有行动号召的链接公共主页帖子

call_to_action 字段用于指定相应操作和相关链接。此链接应该与公共主页帖子的 link 参数相同。在此调用中,titledescriptioncaptionpicture 为可选项;如未提供,Facebook 会从链接的开放图谱元数据中读取同等属性。如果已关联的网页不具有开放图谱元数据,Facebook 会尝试通过抓取网页内容来猜测这些属性。

请求示例

curl -i -X POST "https://graph.facebook.com/{your-page-id}/feed
  ?message=Become a Facebook developer!
  &link=https://developers.facebook.com
  &call_to_action={"type":"SIGN_UP","value":{"link":"https://developers.facebook.com"}}
  &published=1
  &access_token={your-page-access-token}"
GraphRequest request = GraphRequest.newPostRequest(
  accessToken,
  "/{your-page-id}/feed",
  new JSONObject("{\"message\":\"Become a Facebook developer!\",\"link\":\"https://developers.facebook.com\",\"published\":\"1\",\"call_to_action\":\"{\\\"type\\\":\\\"SIGN_UP\\\",\\\"value\\\":{\\\"link\\\":\\\"https://developers.facebook.com\\\"}}\"}"),
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{your-page-id}/feed"
           parameters:@{ @"message": @"Become a Facebook developer!",@"link": @"https://developers.facebook.com",@"published": @"1",@"call_to_action": @"{"type":"SIGN_UP","value":{"link":"https://developers.facebook.com"}}",}
           HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{your-page-id}/feed',
  'POST',
  {"message":"Become a Facebook developer!","link":"https://developers.facebook.com","published":"1","call_to_action":"{\"type\":\"SIGN_UP\",\"value\":{\"link\":\"https://developers.facebook.com\"}}"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->post(
    '/{your-page-id}/feed',
    array (
      'message' => 'Become a Facebook developer!',
      'link' => 'https://developers.facebook.com',
      'published' => '1',
      'call_to_action' => '{"type":"SIGN_UP","value":{"link":"https://developers.facebook.com"}}'
    ),
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

响应示例

{"id":"{post-id}"}

含有自定义上传图像的链接帖子

使用本地文件:

curl -F 'link=http://www.example.com' \
     -F 'thumbnail=@/local/path/to/file/on/hard/drive/image.jpg' \
     -F 'access_token=page-access-token'\
  https://graph.facebook.com/v2.11/page-id/feed

返回值

{"id":"post-id"}

通过网址使用图像:

curl -F 'link=http://www.example.com' \
     -F 'picture=https://www.example.com/path/to/image.jpg' \
     -F 'access_token=page-access-token'\
  https://graph.facebook.com/v2.11/page-id/feed

返回值

{"id":"post-id>"}

照片公共主页帖子

详情请访问我们的照片节点参考文档

视频公共主页帖子

详情请访问我们的公共主页视频参考文档

公共主页帖子成效分析

详情请访问我们的公共主页帖子成效分析参考文档

更新

您无法使用此连线更新帖子,但您可以使用 /{post-id} 节点更新帖子

删除

您无法使用此连线删除帖子,但您可以使用 /{post-id} 节点删除帖子