समस्या निवारण और token guides
LinkedIn, Facebook, Instagram, और YouTube को ContentFlows से जोड़ने के चरण-दर-चरण निर्देश। हर platform के लिए two values चाहिए: एक access token (जो अनुमति देता है) और एक ID (किस account / page / channel पर पब्लिश करना है)। दोनों आपके dashboard में paste किए जाते हैं।
Credentials कैसे संग्रहीत होते हैं
चारों platforms की values AWS Secrets Manager में contentflows/tenants/YOUR_TENANT_ID/social-tokens पर एक single encrypted JSON blob के रूप में saved होती हैं। Secrets कभी log नहीं किए जाते, save करने के बाद फिर कभी दिखाए नहीं जाते, और आपके account के लिए isolated रहते हैं। ContentFlows कभी आपका social media password store नहीं करता।
ContentFlows आपकी ओर से पब्लिश करने के लिए LinkedIn UGC Posts API का उपयोग करता है। आपको w_member_social permission scope वाला access token चाहिए, साथ में उस account का member URN भी चाहिए जिसके तहत पोस्ट दिखाई देंगी।
वे फ़ील्ड जिनके लिए ContentFlows आपसे पूछेगा
LINKEDIN_ACCESS_TOKEN- OAuth 2.0 access token (60-day lifespan). AQV… या इसी तरह से शुरू होता है।
LINKEDIN_AUTHOR_ID- Member URN — urn:li:person:XXXXXXXXXX या Company Page के लिए urn:li:organization:NNNNNN जैसा दिखता है।
आवश्यकताएँ
- एक LinkedIn account (personal profile) — पोस्ट इसी account से पब्लिश होंगी
- एक free LinkedIn developer account — app बनाते समय यह अपने आप बन जाता है
चरण-दर-चरण
LinkedIn Developer Portal पर जाएँ
App details भरें
- App name: कुछ भी — उदा. “ContentFlows Publisher”
- LinkedIn page: आपको एक LinkedIn Company Page लिंक करनी होगी। यदि आपके पास नहीं है, तो पहले एक basic company page बनाएं (free)।
- App logo: कोई भी square image अपलोड करें
'Share on LinkedIn' product का अनुरोध करें
अपना redirect URI जोड़ें
https://www.linkedin.com/developers/tools/oauth/redirectUpdate पर क्लिक करें।
Access token जनरेट करें
w_member_social (और उपलब्ध हो तो r_liteprofile) टिक करें, Request access token पर क्लिक करें, Allow पर क्लिक करें। Token कॉपी करें — यह फिर से नहीं दिखेगा। यह आपका LINKEDIN_ACCESS_TOKEN है।अपना Member URN खोजें
GET https://api.linkedin.com/v2/userinfoResponse में
sub होता है — अपना URN बनाने के लिए इसके आगे urn:li:person: जोड़ें। उदाहरण के लिए यदि sub = "ABC123xyz" है, तो आपका URN urn:li:person:ABC123xyz होगा। यह आपका LINKEDIN_AUTHOR_ID है।urn:li:organization:COMPANY_PAGE_NUMERIC_ID का उपयोग करें — numeric ID Page के admin URL में दिखाई देता है।दोनों values ContentFlows में पेस्ट करें
ContentFlows एक Facebook Page (personal profile नहीं) पर पब्लिश करता है। आपको pages_manage_posts permission वाला एक Page access token, साथ में numeric Page ID चाहिए।
वे फ़ील्ड जिनके लिए ContentFlows आपसे पूछेगा
FB_PAGE_ACCESS_TOKEN- Meta for Developers से long-lived Page access token (60 days).
FB_PAGE_ID- आपके द्वारा manage किए जाने वाले Facebook Page का numeric ID (उदा. 123456789012345)।
आवश्यकताएँ
- एक Facebook account जो Facebook Page का Admin हो
- यदि आपके पास अभी तक Facebook Page नहीं है, तो facebook.com/pages/create पर एक बनाएँ (free, 2 minutes लगते हैं)
चरण-दर-चरण
Meta for Developers portal खोलें
App type चुनें और विवरण भरें
Facebook Login product जोड़ें
Graph API Explorer से user token प्राप्त करें
- ऊपर-दाएँ dropdown में अपना app चुनें
- Generate Access Token पर क्लिक करें
- permissions popup में, इन सभी को check करें:
pages_manage_posts— posts publish करने के लिए आवश्यक (सबसे आम छूटा हुआ scope)pages_read_engagementpages_show_listbusiness_managementinstagram_basic— केवल तब यदि आप इस token को Instagram के लिए पुन: उपयोग करने की योजना बना रहे हैंinstagram_content_publish— केवल तब यदि आप इस token को Instagram के लिए पुन: उपयोग करने की योजना बना रहे हैं
- Generate Access Token पर क्लिक करें और authorize करें
User token को long-lived (60 days) में बढ़ाएँ
Page access token और Page ID दोनों निकालें
GET /me/accounts → SubmitJSON response में, अपना Page खोजें। इसके दो महत्वपूर्ण फ़ील्ड होते हैं:
access_token→ यह आपकाFB_PAGE_ACCESS_TOKENहै — क्योंकि आपने इसे long-lived user token से derived किया है, यह Page token कभी expire नहीं होताid→ यह आपकाFB_PAGE_IDहै
दोनों values ContentFlows में पेस्ट करें
जाँचें कि token में सही scopes हैं (वैकल्पिक लेकिन अनुशंसित)
- Type:
PAGE(USERनहीं — यदि USER दिखता है, तो आपने step 6 में गलत token कॉपी किया है) - Expires: Never (यदि तारीख दिखती है, तो आपने step 5 छोड़ दिया — जब आपने
/me/accountsकॉल किया था, तब user token अभी भी short-lived था) - Scopes: में
pages_manage_postsशामिल होना चाहिए। यदि यह गायब है, तो आपने step 4 में वह box check नहीं किया — step 4 से फिर शुरू करें।
{"error":{"message":"(#200) Permissions error"}}, तो token में लगभग हमेशा pages_manage_posts missing होता है। Debugger (step 8) से सत्यापित करें और आवश्यकता होने पर फिर से generate करें।Instagram publishing Facebook Graph API का उपयोग करता है, इसलिए आपका Instagram account Facebook Page से जुड़ा हुआ एक Professional account (Business या Creator) होना चाहिए। Personal Instagram accounts API के माध्यम से publish नहीं कर सकते।
वे फ़ील्ड जिनके लिए ContentFlows आपसे पूछेगा
IG_ACCESS_TOKEN- Optional — खाली छोड़ दें और ContentFlows FB_PAGE_ACCESS_TOKEN पर वापस चला जाएगा। केवल तब भरें यदि आपके पास dedicated Instagram token है।
IG_BUSINESS_ACCOUNT_ID- आपके Facebook Page से जुड़ा Instagram Business Account ID (उदा. 17841412345678901)।
आवश्यकताएँ
- एक Instagram Business या Creator account (personal account नहीं)
- वह Instagram account जिस Facebook Page को आप manage करते हैं उससे linked होना चाहिए
instagram_content_publishpermission वाला Meta developer app
Professional account में बदलें (यदि आवश्यक हो)
Instagram app में account type बदलें
Instagram को अपने Facebook Page से लिंक करें
Instagram Business Account ID प्राप्त करें
Graph API Explorer खोलें
instagram_basic, instagram_content_publish, pages_read_engagement, pages_manage_postsअपना Instagram Business Account ID खोजें
GET /me/accounts चलाएँ। अपना Page ढूँढें और उसका id कॉपी करें। फिर यह चलाएँ:GET /{page-id}?fields=instagram_business_account(replace
{page-id} अपने Page ID से). Response में एक instagram_business_account object होता है — उसका id कॉपी करें। यह आपका IG_BUSINESS_ACCOUNT_ID है।Values ContentFlows में पेस्ट करें
IG_BUSINESS_ACCOUNT_ID देना होगा।YouTube
ContentFlows आपके content calendar के लिए वीडियो metadata (titles, descriptions, tags) जनरेट करने हेतु YouTube Data API v3 का उपयोग करता है। आपको Google Cloud Console से एक API key और अपने channel का ID चाहिए।
वे फ़ील्ड जिनके लिए ContentFlows आपसे पूछेगा
YOUTUBE_API_KEY- YouTube Data API v3 enabled वाली Google Cloud API key. AIza… से शुरू होती है।
YOUTUBE_CHANNEL_ID- आपका YouTube channel ID (उदा. UCxxxxxxxxxxxxxxxxxxxxxx). इसे YouTube Studio → Settings → Channel → Advanced settings में खोजें।
आवश्यकताएँ
- एक Google account
- उस account से जुड़ा एक YouTube channel
- एक free Google Cloud project (आप इसे पहले चरण के दौरान बनाते हैं)
चरण-दर-चरण
Google Cloud project बनाएं
YouTube Data API v3 सक्षम करें
API key बनाएं
YOUTUBE_API_KEY है।अपना YouTube Channel ID खोजें
UC से शुरू होता है। यह आपका YOUTUBE_CHANNEL_ID है।दोनों values ContentFlows में पेस्ट करें
Sending domain (DKIM / SPF / DMARC)
By default newsletters noreply@contentflows.cc से जाती हैं। अपना domain authenticate करने से deliverability बेहतर होती है (spam-folder में कम जाती हैं) क्योंकि From address DKIM signatures और आपके visible brand से मेल खाती है।
आवश्यकताएँ
- आपके पास एक domain हो (उदा.
your-business.com). - आप अपने registrar (Cloudflare, Route53, GoDaddy, Namecheap, आदि) पर DNS records बना सकते हों।
चरण-दर-चरण
Flow शुरू करें
your-business.com) → Save & show DNS records पर क्लिक करें।5 DNS records कॉपी करें
- 3 × CNAME (DKIM tokens)
- root पर 1 × TXT (SPF)
_dmarc.your-domain.comपर 1 × TXT (DMARC)
अपने DNS provider में पेस्ट करें
abc123._domainkey.your-domain.com)।Verify करें
हो गया
newsletter@your-domain.com का उपयोग करेंगी, DKIM signatures, SPF pass, और DMARC alignment के साथ।noreply@contentflows.cc sender पर वापस चली जाती हैं।Subscribers आयात करना
Newsletter टैब का + Import button एक modal खोलता है जिसमें तीन tabs होते हैं:
CSV upload
एक .csv फ़ाइल अपलोड करें। Header row अपने आप detect हो जाती है (जिस भी column के नाम में email होता है, उसे email column माना जाता है; किसी भी column में name या first हो, उसे name माना जाता है)। Invalid email addresses अस्वीकार की जाती हैं; duplicates छोड़ दिए जाते हैं। Import सक्षम होने से पहले consent checkbox टिक करें।
Mailchimp
अपना Mailchimp API key पेस्ट करें (format: abc123...-us21 — आखिरी dash के बाद का भाग data center है) और Audience ID (Mailchimp Audience dashboard → Settings → Audience name and defaults → Audience ID)। ContentFlows सभी subscribed members खींचता है।
ConvertKit
अपना ConvertKit API key पेस्ट करें (Settings → Advanced → API Key)। सभी confirmed subscribers आयात किए जाते हैं।
सामान्य समस्याएँ
- Mailchimp 401 Unauthorized — API key गलत है या account ने इसे disable कर दिया है। Mailchimp → Account → Extras → API keys में इसे regenerate करें।
- “No valid email addresses” — CSV parser ने email column detect नहीं किया। सुनिश्चित करें कि header row है और एक column का नाम सचमुच
emailहै। - Import finishes instantly with 0 added — हर row पहले से ही आपकी list में थी। Re-runs के लिए यह सामान्य है।
सामान्य समस्याएँ
Token invalid या expired है
Access tokens expire हो जाते हैं। LinkedIn tokens लगभग 60 days तक चलते हैं। Facebook/Instagram Page tokens long-lived user token से derived होने पर कभी expire नहीं होते (Facebook section के चरण बिल्कुल वैसे ही follow करें)। एक नया token generate करें और Integrations में अपडेट करें।
Facebook: publish करते समय (#200) Permissions error
अब तक का सबसे आम कारण: Page token में pages_manage_posts scope गायब है। Graph API Explorer इसे default रूप से सक्षम नहीं करता, इसलिए permissions popup में इसे चूकना आसान है। अपना token Access Token Debugger में verify करें — यदि scopes list में pages_manage_posts नहीं है, तो Facebook guide के Step 4 से token regenerate करें और उस permission को स्पष्ट रूप से check करें।
LinkedIn: invalid URN
Member URN का आरंभ personal profiles के लिए urn:li:person: या Company Pages के लिए urn:li:organization: से होना चाहिए, जिसके बाद account का unique ID आता है। केवल numeric या alphanumeric string अपने आप में वैध URN नहीं है।
LinkedIn पर अपर्याप्त permissions
आपके LinkedIn app में Share on LinkedIn product approved नहीं है, या token w_member_social के बिना जनरेट हुआ था। LinkedIn guide के step 3 पर वापस जाएँ, फिर token regenerate करें।
Facebook: गलत Page ID
Page ID /me/accounts से प्राप्त numeric id field है, Page URL में दिखने वाला human-readable username नहीं। यदि आप गलती से username पेस्ट करते हैं, तो posts fail हो जाएँगी।
आपको Facebook Page का admin होना चाहिए
जिस Facebook account ने token जनरेट किया है, वह target Page का Admin नहीं है। Page admin से token खुद जनरेट करने को कहें, या facebook.com → Page settings → Page roles में खुद को Admin के रूप में जोड़वाएँ।
Instagram: Business या Creator account नहीं है
Personal Instagram accounts Content Publishing API का उपयोग नहीं कर सकते। ऊपर दिए गए conversion steps का पालन करें।
Instagram: account किसी Facebook Page से जुड़ा नहीं है
आपका Instagram Professional account किसी Facebook Page से connected नहीं है। Instagram Settings → Account → Linked Accounts → Facebook पर जाएँ और लिंक पूरा करें।
YouTube: API quota समाप्त हो गई है
YouTube Data API की default quota 10,000 units/day है, जो ContentFlows metadata lookups के लिए पर्याप्त से भी अधिक है। यदि आप limit तक पहुँचते हैं, तो संभवतः वही API key कहीं और उपयोग हो रही है — ContentFlows के लिए एक dedicated key बनाएं।
अभी भी अटके हैं?
सपोर्ट से संपर्क करें error message और यह platform बताकर कि आप किसे connect कर रहे हैं। उस step number को भी शामिल करें जहाँ आप अटक गए थे।