7个版本
0.1.8 | 2024年4月5日 |
---|---|
0.1.7 | 2024年3月8日 |
0.1.6 | 2024年2月26日 |
#428 in 网页开发
每月587次下载
18KB
366 行
Facebook帖子上传的非官方Rust API客户端。
🪛 要求
-
在开发者页面上创建一个Facebook应用
-
您的Facebook应用必须处于Live模式,以便其他人可以看到您的帖子。
-
从Graph API资源管理器中获取ACCESS_TOKEN。您可以通过点击信息图标获取2个月的令牌。
-
添加所需的权限以允许您的应用发布帖子。
pages_manage_engagement
pages_manage_posts
pages_read_engagement
pages_read_user_engagement
publish_video
权限,如果您需要发布视频
-
从您计划发布帖子的页面中获取PAGE_ID。
-
更多有用信息可在官方Facebook API文档中找到,当前版本v19.0。
🪧 使用
帖子
use fb_poster::*;
use anyhow::{Ok, Result};
const ACCESS_TOKEN: &str = "YOUR_ACCESS_TOKEN";
const PAGE_ID: &str = "YOUR_PAGE_ID";
#[tokio::main]
async fn main() -> Result<()> {
// Bring your secrets into a scope
let secrets = Secrets::new(ACCESS_TOKEN, PAGE_ID);
let message = "Your message".to_string();
let link = "https://your_link".to_string();
// Build a body for a request
let body = Post::new(secrets)
.with_message(message)
.with_link(link);
// Sending and get repsonse
body.send().await?;
Ok(())
}
照片
use fb_poster::*;
use anyhow::{Ok, Result};
const ACCESS_TOKEN: &str = "YOUR_ACCESS_TOKEN";
const PAGE_ID: &str = "YOUR_PAGE_ID";
#[tokio::main]
async fn main() -> Result<()> {
// Bring your secrets into a scope
let secrets = Secrets::new(ACCESS_TOKEN, PAGE_ID);
let path = "/path/to/photo.png".to_string();
// Build a body for a request
let body = Photo::new(secrets, path);
// Sending and get repsonse
body.send(&secrets).await?;
Ok(())
}
视频
use fb_poster::*;
use anyhow::{Ok, Result};
const ACCESS_TOKEN: &str = "YOUR_ACCESS_TOKEN";
const PAGE_ID: &str = "YOUR_PAGE_ID";
#[tokio::main]
async fn main() -> Result<()> {
// Bring your secrets into a scope
let secrets = Secrets::new(ACCESS_TOKEN, PAGE_ID);
let path = "/path/to/video".to_string(); // or url for .hosted_video()
let title = "Title".to_string();
let description = "Description".to_string();
let thumb = "path/to/thumb".to_string();
// Build a body for a request
let body = Video::new(secrets)
.local_video(path)
.with_title(title)
.with_description(description)
.with_thumbnail(thumb)
// Sending and get repsonse
body.send().await?;
Ok(())
}
reels
use fb_poster::*;
use anyhow::{Ok, Result};
const ACCESS_TOKEN: &str = "YOUR_ACCESS_TOKEN";
const PAGE_ID: &str = "YOUR_PAGE_ID";
#[tokio::main]
async fn main() -> Result<()> {
// Bring your secrets into a scope
let secrets = Secrets::new(ACCESS_TOKEN, PAGE_ID);
let path = "/path/to/video".to_string(); // or url for .hosted_video()
let title = "Title".to_string();
let description = "Description".to_string();
let thumb = "path/to/thumb".to_string();
// Build a body for a request
let body = Reels::new(secrets)
.local_video(path)
.with_description(description)
// Sending and get repsonse
body.send().await?;
Ok(())
}
✅ 功能
- 帖子
- 带消息
- 带链接
- 照片
- 带消息
非可恢复上传(视频限制为1GB 20分钟)
-
视频
- 本地视频
- 托管视频
- 带标题
- 带描述
- 带缩略图
-
reels
- 本地Reels
- 托管Reels
- 带描述
依赖关系
~6–17MB
~239K SLoC