TÓM TẮT
Instagram Graph API cho phép các nhà phát triển quản lý tài khoản Instagram doanh nghiệp và nhà sáng tạo một cách có lập trình. API này sử dụng xác thực Facebook Login OAuth 2.0, các điểm cuối (endpoints) dựa trên GraphQL để xuất bản nội dung, thông tin chi tiết (insights), bình luận và nhắn tin, với giới hạn tốc độ là 200 lượt gọi mỗi giờ cho mỗi ứng dụng. Hướng dẫn này bao gồm thiết lập xác thực, xuất bản nội dung, truy xuất thông tin chi tiết, quản lý bình luận và các chiến lược tích hợp sản xuất.
Giới thiệu
Instagram có hơn 2 tỷ người dùng hoạt động hàng tháng, với hơn 200 triệu doanh nghiệp sử dụng tài khoản Instagram Business. Đối với các nhà phát triển xây dựng công cụ quản lý mạng xã hội, nền tảng phân tích hoặc tích hợp thương mại điện tử, việc tích hợp Instagram Graph API là điều cần thiết để tiếp cận lượng khán giả khổng lồ này.
Thực tế là: các nhà quản lý mạng xã hội xử lý hơn 10 tài khoản mất 20-30 giờ mỗi tuần cho việc đăng bài thủ công, trả lời bình luận và tổng hợp phân tích. Một tích hợp Instagram API vững chắc sẽ tự động hóa việc xuất bản nội dung, kiểm duyệt bình luận, phân tích tình cảm và báo cáo hiệu suất.
Hướng dẫn này sẽ đi sâu vào toàn bộ quy trình tích hợp Instagram Graph API. Bạn sẽ học cách xác thực bằng Facebook Login, xuất bản nội dung, thông tin chi tiết về phương tiện, quản lý bình luận, tích hợp webhook và các chiến lược triển khai sản xuất. Cuối cùng, bạn sẽ có một tích hợp Instagram sẵn sàng cho sản xuất.
Instagram Graph API là gì?
Instagram Graph API cung cấp quyền truy cập có lập trình vào các tài khoản Instagram doanh nghiệp và nhà sáng tạo thông qua Facebook Graph API. API xử lý:
- Xuất bản nội dung (ảnh, video, thước phim, băng chuyền)
- Thông tin chi tiết và phân tích phương tiện
- Quản lý bình luận và đề cập
- Nhắn tin trực tiếp (qua Instagram Graph API + Messenger Platform)
- Theo dõi hashtag và đề cập
- Quản lý tin (Story)
- Thẻ mua sắm và sản phẩm
Các tính năng chính
| Tính năng | Mô tả |
|---|---|
| API dựa trên đồ thị (Graph) | Truy cập tài nguyên dựa trên nút |
| OAuth 2.0 | Xác thực bằng Facebook Login |
| Webhooks | Thông báo theo thời gian thực cho bình luận, đề cập |
| Giới hạn tốc độ | 200 lượt gọi mỗi giờ cho mỗi ứng dụng |
| Xuất bản nội dung | Ảnh, video, thước phim, băng chuyền |
| Thông tin chi tiết (Insights) | Các chỉ số tương tác, phạm vi tiếp cận, lượt hiển thị |
| Kiểm duyệt | Quản lý bình luận, đề cập, tin nhắn |
Yêu cầu tài khoản
| Loại tài khoản | Quyền truy cập API |
|---|---|
| Tài khoản doanh nghiệp | Toàn quyền truy cập API |
| Tài khoản nhà sáng tạo | Toàn quyền truy cập API |
| Tài khoản cá nhân | Không có quyền truy cập API (phải chuyển đổi) |
| Tài khoản riêng tư | Thông tin chi tiết hạn chế |
Tổng quan kiến trúc API
Instagram sử dụng cấu trúc Facebook Graph API:
https://graph.facebook.com/v18.0/
So sánh các phiên bản API
| Phiên bản | Trạng thái | Ngày kết thúc | Trường hợp sử dụng |
|---|---|---|---|
| v18.0 | Hiện tại | Tháng 3 năm 2026 | Tất cả các tích hợp mới |
| v17.0 | Không dùng nữa | Tháng 1 năm 2026 | Các tích hợp hiện có |
| v16.0 | Đã ngừng hoạt động | Đã hết hạn | Không sử dụng |
Facebook phát hành các phiên bản mới hàng quý. Luôn hướng tới phiên bản ổn định mới nhất.
Bắt đầu: Thiết lập xác thực
Bước 1: Tạo tài khoản nhà phát triển Facebook
Trước khi truy cập API:
- Truy cập Cổng nhà phát triển Facebook
- Đăng nhập bằng tài khoản Facebook
- Tạo một ứng dụng Facebook (loại: Business)
- Thêm sản phẩm Instagram Graph API
Bước 2: Liên kết tài khoản Instagram doanh nghiệp
Kết nối Instagram với Trang Facebook:
- Vào Cài đặt Trang Facebook > Instagram
- Nhấp vào Kết nối tài khoản
- Đăng nhập vào Instagram và ủy quyền
- Xác nhận tài khoản Instagram Business đã được liên kết
Lưu ý: Tài khoản Instagram cá nhân không thể sử dụng Graph API. Hãy chuyển đổi sang tài khoản Business hoặc Creator trong Cài đặt Instagram.
Bước 3: Lấy mã truy cập (Access Tokens)
Tạo mã truy cập người dùng (User Access Token):
const FB_APP_ID = process.env.FB_APP_ID;
const FB_APP_SECRET = process.env.FB_APP_SECRET;
const FB_REDIRECT_URI = process.env.FB_REDIRECT_URI;
// Build authorization URL
const getAuthUrl = (state) => {
const params = new URLSearchParams({
client_id: FB_APP_ID,
redirect_uri: FB_REDIRECT_URI,
scope: 'instagram_basic,instagram_content_publish,instagram_manage_comments,instagram_manage_insights,pages_read_engagement',
state: state
});
return `https://www.facebook.com/v18.0/dialog/oauth?${params.toString()}`;
};
Các quyền yêu cầu
| Quyền | Mô tả |
|---|---|
instagram_basic |
Thông tin hồ sơ cơ bản, danh sách phương tiện |
instagram_content_publish |
Đăng ảnh, video, băng chuyền |
instagram_manage_comments |
Đọc/ghi bình luận |
instagram_manage_insights |
Truy cập dữ liệu phân tích |
pages_read_engagement |
Truy cập Trang để xuất bản |
pages_manage_posts |
Đăng lên Trang đã kết nối |
Bước 4: Đổi mã token ngắn hạn lấy mã token dài hạn
Mã token ngắn hạn hết hạn sau 1 giờ. Đổi lấy mã token dài hạn (60 ngày):
const exchangeForLongLivedToken = async (shortLivedToken) => {
const response = await fetch(
`https://graph.facebook.com/v18.0/oauth/access_token?` +
`grant_type=fb_exchange_token&` +
`client_id=${FB_APP_ID}&` +
`client_secret=${FB_APP_SECRET}&` +
`fb_exchange_token=${shortLivedToken}`
);
const data = await response.json();
return data;
};
// Usage
const longLivedToken = await exchangeForLongLivedToken(shortLivedToken);
console.log(`Token expires: ${new Date(longLivedToken.expires_at * 1000)}`);
Bước 5: Lấy ID tài khoản Instagram doanh nghiệp
Truy xuất tài khoản Instagram đã kết nối:
const getInstagramAccountId = async (pageId, accessToken) => {
const response = await fetch(
`https://graph.facebook.com/v18.0/${pageId}?fields=instagram_business_account&access_token=${accessToken}`
);
const data = await response.json();
return data.instagram_business_account.id;
};
// Usage
const igAccountId = await getInstagramAccountId('12345678', accessToken);
console.log(`Instagram Account ID: ${igAccountId}`);
Bước 6: Thực hiện các cuộc gọi API đã xác thực
Tạo một client API có thể tái sử dụng:
const IG_BASE_URL = 'https://graph.facebook.com/v18.0';
const instagramRequest = async (endpoint, params = {}) => {
const url = new URL(`${IG_BASE_URL}${endpoint}`);
url.searchParams.append('access_token', process.env.INSTAGRAM_ACCESS_TOKEN);
Object.entries(params).forEach(([key, value]) => {
url.searchParams.append(key, value);
});
const response = await fetch(url.toString());
if (!response.ok) {
const error = await response.json();
throw new Error(`Instagram API Error: ${error.error.message}`);
}
return response.json();
};
// Usage
const account = await instagramRequest(`/me`);
console.log(`Instagram Account: ${account.username}`);
Xuất bản nội dung
Đăng ảnh
Đăng ảnh lên Instagram:
const publishPhoto = async (igAccountId, photoData) => {
// Bước 1: Tạo container phương tiện
const containerResponse = await instagramRequest(`/${igAccountId}/media`, {
method: 'POST',
image_url: photoData.imageUrl,
caption: photoData.caption,
location_id: photoData.locationId, // Tùy chọn
is_carousel_item: 'false'
});
const creationId = containerResponse.id;
// Bước 2: Xuất bản phương tiện
const publishResponse = await instagramRequest(`/${igAccountId}/media_publish`, {
method: 'POST',
creation_id: creationId
});
return publishResponse;
};
// Usage
const post = await publishPhoto({
igAccountId: '17841400000000000',
imageUrl: 'https://example.com/image.jpg',
caption: 'Excited to announce our new product! 🚀 #launch #innovation',
locationId: '123456789' // Tùy chọn
});
console.log(`Published media ID: ${post.id}`);
Đăng video
Đăng video lên Instagram:
const publishVideo = async (igAccountId, videoData) => {
// Bước 1: Tạo container phương tiện
const containerResponse = await instagramRequest(`/${igAccountId}/media`, {
method: 'POST',
video_url: videoData.videoUrl,
cover_url: videoData.coverUrl, // Hình thu nhỏ tùy chọn
caption: videoData.caption,
media_type: 'REELS', // hoặc 'VIDEO' cho nguồn cấp dữ liệu
share_to_feed: 'true' // Dành cho thước phim
});
const creationId = containerResponse.id;
// Đợi video được xử lý (thăm dò cho đến khi trạng thái là EXPIRED hoặc FINISHED)
await waitForVideoProcessing(creationId);
// Bước 2: Xuất bản phương tiện
const publishResponse = await instagramRequest(`/${igAccountId}/media_publish`, {
method: 'POST',
creation_id: creationId
});
return publishResponse;
};
const waitForVideoProcessing = async (creationId, maxAttempts = 30) => {
for (let i = 0; i < maxAttempts; i++) {
const status = await instagramRequest(`/${creationId}`);
if (status.status_code === 'FINISHED') {
return true;
} else if (status.status_code === 'EXPIRED') {
throw new Error('Video processing expired');
}
await new Promise(resolve => setTimeout(resolve, 2000));
}
throw new Error('Video processing timeout');
};
Đăng băng chuyền (Nhiều hình ảnh/Video)
Đăng nhiều phương tiện trong một bài đăng:
const publishCarousel = async (igAccountId, carouselData) => {
const children = [];
// Bước 1: Tạo từng mục băng chuyền
for (const item of carouselData.items) {
const containerResponse = await instagramRequest(`/${igAccountId}/media`, {
method: 'POST',
[item.type === 'video' ? 'video_url' : 'image_url']: item.url,
caption: item.caption || '',
is_carousel_item: 'true'
});
children.push(containerResponse.id);
}
// Bước 2: Tạo container băng chuyền với các mục con
const carouselContainerResponse = await instagramRequest(`/${igAccountId}/media`, {
method: 'POST',
media_type: 'CAROUSEL',
children: children.join(','),
caption: carouselData.caption
});
const creationId = carouselContainerResponse.id;
// Bước 3: Xuất bản băng chuyền
const publishResponse = await instagramRequest(`/${igAccountId}/media_publish`, {
method: 'POST',
creation_id: creationId
});
return publishResponse;
};
// Usage
const carousel = await publishCarousel('17841400000000000', {
caption: 'Product showcase 2026',
items: [
{ type: 'image', url: 'https://example.com/img1.jpg', caption: 'Product 1' },
{ type: 'image', url: 'https://example.com/img2.jpg', caption: 'Product 2' },
{ type: 'video', url: 'https://example.com/vid1.mp4', caption: 'Demo' }
]
});
Loại phương tiện
| Loại phương tiện | Tham số | Trường hợp sử dụng |
|---|---|---|
IMAGE |
image_url, caption | Bài đăng ảnh |
VIDEO |
video_url, cover_url, caption | Bài đăng video |
REELS |
video_url, cover_url, caption, share_to_feed | Thước phim (Reels) |
CAROUSEL |
children (mảng), caption | Nhiều phương tiện |
Truy xuất phương tiện và thông tin chi tiết
Lấy phương tiện của người dùng
Truy xuất phương tiện đã xuất bản:
const getUserMedia = async (igAccountId, limit = 25) => {
const response = await instagramRequest(`/${igAccountId}/media`, {
fields: 'id,caption,media_type,media_url,permalink,timestamp,like_count,comments_count',
limit: limit.toString()
});
return response;
};
// Usage
const media = await getUserMedia('17841400000000000');
media.data.forEach(item => {
console.log(`${item.media_type}: ${item.caption}`);
console.log(`Likes: ${item.like_count}, Comments: ${item.comments_count}`);
console.log(`URL: ${item.permalink}`);
});
Lấy thông tin chi tiết về phương tiện
Truy xuất phân tích cho phương tiện cụ thể:
const getMediaInsights = async (mediaId) => {
const response = await instagramRequest(`/${mediaId}/insights`, {
fields: 'impressions,reach,engagement,saved,video_views,profile_visits,follows'
});
return response;
};
// Usage
const insights = await getMediaInsights('17890000000000000');
insights.data.forEach(metric => {
console.log(`${metric.name}: ${metric.values[0].value}`);
});
Các chỉ số thông tin chi tiết có sẵn
| Chỉ số | Mô tả | Loại phương tiện |
|---|---|---|
impressions |
Tổng lượt xem | Tất cả |
reach |
Tài khoản duy nhất được tiếp cận | Tất cả |
engagement |
Lượt thích + bình luận + lượt lưu | Tất cả |
saved |
Số lần được lưu | Tất cả |
video_views |
Lượt xem video (3+ giây) | Video, Thước phim (Reels) |
plays |
Tổng số lượt phát video | Video, Thước phim (Reels) |
profile_visits |
Lượt truy cập hồ sơ từ bài đăng | Tất cả |
follows |
Lượt theo dõi từ bài đăng | Tất cả |
comments |
Số lượng bình luận | Tất cả |
like_count |
Số lượng lượt thích | Tất cả |
Lấy thông tin chi tiết tài khoản
Truy xuất phân tích tổng hợp tài khoản:
const getAccountInsights = async (igAccountId, metricNames, since = null, until = null) => {
const params = {
metric: metricNames.join(','),
period: 'day'
};
if (since) params.since = since;
if (until) params.until = until;
const response = await instagramRequest(`/${igAccountId}/insights`, params);
return response;
};
// Usage - Get last 30 days of metrics
const accountInsights = await getAccountInsights(
'17841400000000000',
['impressions', 'reach', 'profile_views', 'email_contacts', 'website_clicks'],
'2026-02-23',
'2026-03-25'
);
accountInsights.data.forEach(metric => {
console.log(`${metric.name}:`);
metric.values.forEach(value => {
console.log(` ${value.end_time}: ${value.value}`);
});
});
Các chỉ số cấp tài khoản
| Chỉ số | Mô tả |
|---|---|
impressions |
Tổng lượt xem hồ sơ + nội dung |
reach |
Tài khoản duy nhất được tiếp cận |
profile_views |
Lượt truy cập hồ sơ |
website_clicks |
Lượt nhấp vào liên kết trong tiểu sử |
email_contacts |
Lượt nhấp nút email |
phone_call_clicks |
Lượt nhấp nút điện thoại |
text_message_clicks |
Lượt nhấp nút SMS |
get_directions_clicks |
Lượt nhấp địa chỉ |
follower_count |
Tổng số người theo dõi |
audience_city |
Thành phố của người theo dõi |
audience_country |
Quốc gia của người theo dõi |
audience_gender_age |
Phân tích nhân khẩu học theo giới tính và độ tuổi |
Quản lý bình luận
Lấy bình luận
Truy xuất bình luận trên phương tiện:
const getMediaComments = async (mediaId, limit = 50) => {
const response = await instagramRequest(`/${mediaId}/comments`, {
fields: 'id,text,timestamp,username,hidden',
limit: limit.toString()
});
return response;
};
// Usage
const comments = await getMediaComments('17890000000000000');
comments.data.forEach(comment => {
console.log(`@${comment.username}: ${comment.text}`);
console.log(`Hidden: ${comment.hidden}`);
});
Trả lời bình luận
Đăng trả lời bình luận:
const replyToComment = async (mediaId, commentId, replyText) => {
const response = await instagramRequest(`/${mediaId}/comments`, {
method: 'POST',
response_to: commentId,
message: replyText
});
return response;
};
// Usage
const reply = await replyToComment(
'17890000000000000',
'17900000000000000',
'Thank you for your interest! Check your DM for details.'
);
console.log(`Reply posted: ${reply.id}`);
Ẩn bình luận
Ẩn các bình luận không phù hợp:
const hideComment = async (commentId) => {
const response = await instagramRequest(`/${commentId}`, {
method: 'POST',
hide: 'true'
});
return response;
};
// Usage
await hideComment('17900000000000000');
console.log('Comment hidden');
Xóa bình luận
Xóa bình luận spam hoặc không phù hợp:
const deleteComment = async (commentId) => {
await instagramRequest(`/${commentId}`, {
method: 'DELETE'
});
console.log('Comment deleted');
};
Webhooks
Cấu hình Webhooks
Thiết lập webhooks để nhận thông báo theo thời gian thực:
const subscribeToWebhooks = async (appId, pageId, accessToken) => {
// Đăng ký sự kiện Instagram
const response = await fetch(
`https://graph.facebook.com/v18.0/${appId}/subscriptions`,
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
object: 'instagram',
callback_url: 'https://myapp.com/webhooks/instagram',
verify_token: process.env.WEBHOOK_VERIFY_TOKEN,
access_token: accessToken,
fields: ['comments', 'mentions', 'message_reactions']
})
}
);
return response.json();
};
Xử lý Webhooks
const express = require('express');
const app = express();
// Verify webhook subscription
app.get('/webhooks/instagram', (req, res) => {
const mode = req.query['hub.mode'];
const token = req.query['hub.verify_token'];
const challenge = req.query['hub.challenge'];
if (mode === 'subscribe' && token === process.env.WEBHOOK_VERIFY_TOKEN) {
console.log('Webhook verified');
res.status(200).send(challenge);
} else {
res.status(403).send('Verification failed');
}
});
// Handle webhook events
app.post('/webhooks/instagram', express.json(), async (req, res) => {
const body = req.body;
if (body.object !== 'instagram') {
return res.status(404).send('Not found');
}
for (const entry of body.entry) {
const igId = entry.id;
const changes = entry.changes;
for (const change of changes) {
switch (change.field) {
case 'comments':
await handleNewComment(change.value);
break;
case 'mentions':
await handleMention(change.value);
break;
case 'message_reactions':
await handleReaction(change.value);
break;
}
}
}
res.status(200).send('OK');
});
async function handleNewComment(data) {
console.log(`New comment on media ${data.media_id}`);
console.log(`From: ${data.from_id}`);
console.log(`Text: ${data.text}`);
// Auto-reply or moderate
if (isSpam(data.text)) {
await hideComment(data.id);
}
}
Các trường Webhook
| Trường | Kích hoạt |
|---|---|
comments |
Bình luận mới hoặc trả lời |
mentions |
Người dùng đề cập đến tài khoản |
message_reactions |
Phản ứng với tin (Story) |
story_status |
Trả lời/xem tin (Story) |
Giới hạn tốc độ
Hiểu về giới hạn tốc độ
Instagram Graph API áp dụng:
- 200 lượt gọi mỗi giờ cho mỗi ứng dụng (được chia sẻ giữa tất cả người dùng)
- Business Discovery: 200 lượt gọi mỗi giờ cho mỗi người dùng
- Xuất bản nội dung: Giới hạn theo loại hành động
Vượt quá giới hạn sẽ dẫn đến lỗi HTTP 400 với mã lỗi phụ 613.
Các phương pháp hay nhất về giới hạn tốc độ
- Lưu trữ phản hồi (Cache responses) - Không truy xuất lại dữ liệu không thay đổi
- Yêu cầu theo lô (Batch requests) - Sử dụng mở rộng trường để giảm số lượt gọi
- Sử dụng webhooks - Cập nhật theo thời gian thực thay vì thăm dò
- Thực hiện backoff - Backoff theo cấp số nhân khi gặp lỗi 429
const makeRateLimitedRequest = async (endpoint, params = {}, maxRetries = 3) => {
for (let attempt = 1; attempt <= maxRetries; attempt++) {
try {
const response = await instagramRequest(endpoint, params);
return response;
} catch (error) {
if (error.message.includes('429') && attempt < maxRetries) {
const delay = Math.pow(2, attempt) * 1000;
console.log(`Rate limited. Retrying in ${delay}ms...`);
await new Promise(resolve => setTimeout(resolve, delay));
} else {
throw error;
}
}
}
};
Khắc phục sự cố thường gặp
Vấn đề: Mã token OAuth đã hết hạn
Triệu chứng: Nhận các lỗi “Invalid OAuth access token”.
Giải pháp:
- Triển khai làm mới mã token trước khi hết hạn 60 ngày
- Lưu trữ ngày hết hạn của mã token và cảnh báo trước khi hết hạn
- Xác thực lại người dùng nếu mã token đã hết hạn
Vấn đề: Xuất bản phương tiện thất bại
Triệu chứng: Xuất bản trả về lỗi.
Giải pháp:
- Xác minh URL hình ảnh có thể truy cập công khai (không yêu cầu xác thực)
- Kiểm tra định dạng hình ảnh (JPEG, PNG) và kích thước (<8MB)
- Đảm bảo video có định dạng MP4, <1GB, <90 giây
- Đợi video được xử lý trước khi xuất bản
Vấn đề: Thông tin chi tiết không khả dụng
Triệu chứng: API Insights trả về dữ liệu trống.
Giải pháp:
- Xác minh tài khoản là Business hoặc Creator (không phải cá nhân)
- Đợi 24-48 giờ để thông tin chi tiết được điền đầy đủ
- Kiểm tra tài khoản có hoạt động đủ không
Danh sách kiểm tra triển khai sản phẩm
Trước khi đưa vào hoạt động:
- [ ] Chuyển đổi tất cả các tài khoản thử nghiệm sang Business/Creator
- [ ] Triển khai OAuth 2.0 với mã token dài hạn
- [ ] Lưu trữ mã token an toàn bằng mã hóa
- [ ] Triển khai làm mới mã token tự động
- [ ] Thiết lập các điểm cuối webhook với HTTPS
- [ ] Thêm giới hạn tốc độ và xếp hàng yêu cầu
- [ ] Triển khai xử lý lỗi toàn diện
- [ ] Thêm nhật ký cho tất cả các cuộc gọi API
- [ ] Tạo quy trình làm việc kiểm duyệt nội dung
- [ ] Kiểm tra với nhiều loại tài khoản
Các trường hợp sử dụng thực tế
Công cụ lên lịch đăng bài trên mạng xã hội
Một nền tảng tiếp thị tự động hóa việc đăng bài:
- Thách thức: Đăng bài thủ công trên hơn 50 tài khoản khách hàng
- Giải pháp: Lên lịch xuất bản qua Instagram API
- Kết quả: Tiết kiệm 80% thời gian, lịch đăng bài nhất quán
Triển khai chính:
- Lịch nội dung với tính năng kéo và thả để lên lịch
- Tự động đăng ảnh, video, băng chuyền
- Gợi ý hashtag dựa trên nội dung
Tự động hóa dịch vụ khách hàng
Một thương hiệu thương mại điện tử tự động hóa phản hồi bình luận:
- Thách thức: Phản hồi chậm các yêu cầu của khách hàng
- Giải pháp: Tự động trả lời các câu hỏi thường gặp qua webhook
- Kết quả: Thời gian phản hồi trung bình 5 phút, 90% sự hài lòng
Triển khai chính:
- Phát hiện từ khóa (giá, tình trạng còn hàng, vận chuyển)
- Tự động trả lời bằng liên kết sản phẩm
- Chuyển các truy vấn phức tạp cho nhân viên hỗ trợ
Kết luận
Instagram Graph API cung cấp quyền truy cập toàn diện vào các tính năng của tài khoản Instagram Business và Creator. Những điểm chính cần lưu ý:
- Xác thực Facebook Login OAuth 2.0 với mã token 60 ngày
- Xuất bản nội dung hỗ trợ ảnh, video, thước phim, băng chuyền
- API Insights cung cấp dữ liệu về tương tác, phạm vi tiếp cận và nhân khẩu học
- Webhooks cho phép giám sát bình luận và đề cập theo thời gian thực
- Giới hạn tốc độ 200 lượt gọi/giờ cho mỗi ứng dụng yêu cầu quản lý cẩn thận
- Apidog đơn giản hóa việc kiểm thử API và cộng tác nhóm
Phần hỏi đáp
Làm cách nào để truy cập Instagram API?
Tạo tài khoản nhà phát triển Facebook, tạo ứng dụng Business, thêm sản phẩm Instagram Graph API và xác thực qua Facebook Login với các quyền cần thiết.
Tôi có thể tự động đăng bài lên Instagram không?
Có, sử dụng Content Publishing API để đăng ảnh, video, thước phim và băng chuyền lên tài khoản Business và Creator.
Những loại tài khoản Instagram nào hỗ trợ API?
Chỉ tài khoản Business và Creator mới có toàn quyền truy cập API. Tài khoản cá nhân có quyền truy cập API hạn chế hoặc không có.
Làm cách nào để lấy bình luận từ Instagram?
Sử dụng điểm cuối Comments (/{media-id}/comments) để truy xuất bình luận trên phương tiện cụ thể. Webhooks cung cấp thông báo theo thời gian thực.
Giới hạn tốc độ của Instagram là gì?
Instagram Graph API cho phép 200 lượt gọi mỗi giờ cho mỗi ứng dụng. Một số điểm cuối có thêm giới hạn cho mỗi người dùng.
Tôi có thể đăng Tin (Stories) qua API không?
Có, Tin (Stories) có thể được đăng bằng quy trình xuất bản nội dung tương tự như bài đăng trên nguồn cấp dữ liệu.
Làm cách nào để truy cập Instagram Insights?
Yêu cầu quyền instagram_manage_insights trong quá trình OAuth. Sử dụng điểm cuối Insights để truy xuất các chỉ số cho phương tiện và tài khoản.
Tôi có thể tự động trả lời bình luận không?
Có, sử dụng Comments API để đăng trả lời. Nhiều thương hiệu sử dụng tính năng này để tự động trả lời dịch vụ khách hàng.
