You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Facebook Java SDK实现带图定时帖子发布及规划项查询?

使用Facebook Java Business SDK 17.0.3实现定时带图帖子及获取已定时项目

依赖配置

<dependency>
    <groupId>com.facebook.business.sdk</groupId>
    <artifactId>facebook-java-business-sdk</artifactId>
    <version>17.0.3</version>
</dependency>

一、发布定时带图帖子(同步到Meta Business Suite规划工具)

要实现定时带图帖子并同步到规划工具,需先将图片上传至页面相册,再创建定时Feed帖子,核心是设置scheduled_publish_time参数。

完整代码实现

import com.facebook.ads.sdk.*;
import java.io.File;
import java.util.Calendar;

public class ScheduledPageFeedPostWithImage {
    public static void main(String args[]) throws APIException {
        String accessToken = "<ACCESS_TOKEN>";
        String pageId = "<PAGE_ID>";
        APIContext context = new APIContext(accessToken).enableDebug(true);

        // 1. 上传图片到页面相册(不直接公开,仅作为帖子附件)
        File imageFile = new File("path/to/your/image.jpg");
        String photoId = new Page(pageId, context)
                .createPhoto()
                .setImage(imageFile)
                .setPublished(false)
                .execute()
                .getId();

        // 2. 设置定时发布时间(示例为1小时后,需转换为秒级时间戳)
        Calendar publishTime = Calendar.getInstance();
        publishTime.add(Calendar.HOUR_OF_DAY, 1);
        long scheduledPublishTime = publishTime.getTimeInMillis() / 1000;

        // 3. 创建定时Feed帖子
        new Page(pageId, context)
                .createFeed()
                .setMessage("这是一条定时带图测试帖子")
                .setAttachedMedia("[{\"media_fbid\":\"" + photoId + "\"}]")
                .setScheduledPublishTime(scheduledPublishTime)
                .setPublished(false) // 必须设为false,否则会立即发布
                .execute();

        System.out.println("定时带图帖子已创建,将显示在Meta Business Suite规划工具中");
    }
}

关键注意事项

  • 权限要求:确保access_token拥有pages_manage_posts、pages_show_list权限,且已完成页面角色验证。
  • 定时规则:scheduled_publish_time必须是当前时间至少10分钟之后的秒级时间戳,这是Meta的硬性限制。
  • 图片关联:上传图片时设置published=false,避免图片单独公开,仅作为帖子的附件使用。

二、获取Meta Business Suite规划工具中的所有已定时项目

通过页面的scheduled_posts端点,可直接获取规划工具中所有已定时的帖子。

代码实现

import com.facebook.ads.sdk.*;
import java.util.List;

public class GetScheduledPosts {
    public static void main(String args[]) throws APIException {
        String accessToken = "<ACCESS_TOKEN>";
        String pageId = "<PAGE_ID>";
        APIContext context = new APIContext(accessToken).enableDebug(true);

        // 获取页面所有已定时帖子,指定需要返回的字段
        APINodeList<Post> scheduledPosts = new Page(pageId, context)
                .getScheduledPosts()
                .setFields("id,message,scheduled_publish_time,created_time,attachments")
                .execute();

        // 遍历输出定时项目详情
        for (Post post : scheduledPosts) {
            System.out.println("定时帖子ID: " + post.getId());
            System.out.println("帖子内容: " + post.getMessage());
            System.out.println("定时发布时间: " + post.getScheduledPublishTime());
            System.out.println("创建时间: " + post.getCreatedTime());
            System.out.println("---------------------------");
        }

        // 处理分页(如果定时帖子数量超过默认返回上限)
        while (scheduledPosts.hasNextPage()) {
            scheduledPosts = scheduledPosts.getNextPage();
            for (Post post : scheduledPosts) {
                // 重复上述输出逻辑
            }
        }
    }
}

关键说明

  • 字段自定义:可根据需求添加更多返回字段,比如status查看定时状态、from查看发布主体等。
  • 分页处理:当定时帖子数量较多时,需通过hasNextPage()和getNextPage()循环获取全部结果。

内容的提问来源于stack exchange,提问作者user10053673

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 18:20:38