Monday, February 2, 2026

Facebook 2018 оноос хойш user timeline дээр API-аар шууд post share хийхийг ХОРИГЛОСОН publish_actions гэдэг permission бүрмөсөн устсан

code:

nest.js дотор @Post('fb-post') 
    async fbPosts(@Body() body: { accessToken: string; message: string }) {
        const res = await fetch(`https://graph.facebook.com/me/feed`, {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({
                message: body.message,
                access_token: body.accessToken,
            }),
        });
        
        const result = await res.json();
       
        return { shared: true, posts: result };
    } функцээр facebook share хийх үед {
  message: `(#200) If posting to a group, requires app being installed in the group, and \\
          either publish_to_groups permission with user token, or both pages_read_engagement \\
          and pages_manage_posts permission with page token; If posting to a page, \\
          requires both pages_read_engagement and pages_manage_posts as an admin with \\
          sufficient administrative permission`,
  type: "OAuthException",
  code: 200,
  fbtrace_id: "Ano23PuN6w2b7GF1CfoQiz1",
} алдаа гараад байх юм яаж зөв ажиллуулах вэ? би өөрийн үүсгэсэн facebook app руугаа development mode дээр зүгээр share post тест хийж үзэх гэж байгаа юм! 

Яагаад энэ алдаа гарч байна вэ?

Чи одоо:

POST https://graph.facebook.com/me/feed

гэж дуудаж байна. me/feed гэдэг нь хаана post хийхийг access token чинь тодорхойлно гэсэн үг.

Facebook ингэж ойлгож байна 👇

  • Group дээр post хийх гэж байна уу?

  • Page дээр post хийх гэж байна уу?

  • User-ийн own timeline дээр post хийх гэж байна уу?

Тэгээд permission хангалтгүй болохоор (#200) алдаа өгч байна.


1️⃣ Хэрвээ ЧИ ЗӨВХӨН ӨӨРИЙН TIMELINE дээр post хийх гэж байгаа бол

Facebook 2018 оноос хойш user timeline дээр API-аар шууд post хийхийг ХОРИГЛОСОН.

👉 publish_actions гэдэг permission бүрмөсөн устсан
👉 me/feed → user timeline = ❌ API-аар БОЛОХГҮЙ

Тиймээс:

❌ API-аар “өөрийн timeline дээр пост хийнэ” гэдэг боломж байхгүй болсон


2️⃣ Group дээр post хийх бол (чи энэ алдааг авч байгаа учир магадлал өндөр)

Шаардлага:

  • App чинь тэр групп дээр installed байх

  • Permission:

    • publish_to_groups

  • Token:

    • User access token

Яаж шалгах вэ?

  1. Group → Settings

  2. Apps → Add your app

  3. App Review дээр publish_to_groups-ийг Advanced Access болгосон байх

⚠️ Development mode дээр:

  • Зөвхөн app admin / tester групп дээр post хийж чадна


3️⃣ Page дээр post хийх бол (хамгийн найдвартай зам)

Зөв setup:

Permission-ууд:

pages_read_engagement pages_manage_posts

Алхам:

  1. User token авна (admin account)

  2. Page access token авна

  3. Page ID-гаар post хийнэ

POST https://graph.facebook.com/{PAGE_ID}/feed
body: JSON.stringify({ message: body.message, access_token: PAGE_ACCESS_TOKEN, })

📌 me/feed биш {page-id}/feed


4️⃣ Чиний одоогийн кодыг яаж “зөв” болгох вэ?

Page post хийх хувилбар (ажиллана):

@Post('fb-post') async fbPosts(@Body() body: { pageAccessToken: string; message: string }) { const PAGE_ID = '1234567890'; const res = await fetch( `https://graph.facebook.com/${PAGE_ID}/feed`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message: body.message, access_token: body.pageAccessToken, }), }, ); const result = await res.json(); return result; }

No comments: