2019'da işe yarayan bir yaklaşım
Son zamanlarda benzer bir şey elde etmeye çalışıyordum (bu başlıkta açıklanan kullanım senaryosuna), ancak Facebook'un mevcut politikalarına saygı duyduğumdan emin olmak istedim, bu yüzden biraz araştırma yaptım ve burada bulduğum şeyi paylaşıyorum.
Benim kullanım durumum
Dolayısıyla, daha önce de söylediğim gibi, kullanım durumum burada anlatılana çok benziyor; yani:
- Bir okul bölgesi için bazı işler yapıyorum.
- Okul ulaşımıyla ilgili hemen hemen her şeyi yönetmek için bir yazılım aracı kullanıyorlar.
- Bu araç, otobüs gecikme uyarıları ve okul kapanma uyarıları yayınladıklarında e-posta bildirimleri (abonelere) göndermelerine olanak tanır.
- Topluluktaki pek çok insan örgütü Facebook sayfalarından takip ediyor ve bu uyarıları aradıkları tek yer orası.
- Bu nedenle, kuruluşun bir çalışanının her bildirimi Facebook sayfasında manuel olarak yayınlaması gerekir (nakliye yazılımında oluşturmanın yanı sıra). Dahası, bu bildirimlerin süresi sonunda sona erer (veya süresi dolmadan önce silinir), bu nedenle çalışanın bunları manuel olarak da silmek için daha sonra geri dönmesi gerekir.
- Bu bir zaman belidir, bu yüzden burada yapmaya çalıştığımız şey, yazılım aracının veritabanını yeni (ve süresi dolmuş) bildirimler için periyodik olarak sorgulayan ve bunları Facebook sayfasında güncelleyen (yani ekle ve kaldır) basit bir sistem olarak geliştirmektir.
Bu benim görüşüme göre meşru bir kullanım örneğidir, ancak bunu Facebook politikalarına uygun bir şekilde nasıl uygulayacağımdan emin değildim.
Kabul edilen cevap
Kabul edilen cevabın adımlarını takip ettim ve işe yaradı, ancak işler değişmiş gibi görünüyor: şimdi, oluşturulan sayfa simgesinin süresi dolmasa bile, access to data
yaklaşık 60 gün sonra süresi doluyor. Prosedürü takip edip sayfa jetonunu FB Token Hata Ayıklayıcı Aracında incelerseniz, bunu da göreceksiniz .
Ayrıca, üretilen sayfa token'larının kullanıcı hesabına bağlı olması da talihsiz bir durumdur çünkü eğer kullanıcı şifresini güncellerse sayfa tokeni de geçersiz hale gelir.
2019'da nasıl yapılır
Birkaç saatlik araştırmadan sonra, şu Facebook dokümantasyon makalesine rastladım: Doğrudan İşletmeler için İşletme Girişi .
Yukarıdaki makalede açıklanan adımları izleyerek, belirli bir Facebook kullanıcı hesabıyla ilişkili olmayan ve süresi dolmayacak bir sayfa jetonu oluşturmanın artık mümkün olduğu ortaya çıktı (FB Uygulaması silinmedikçe veya temel uygulama jetonu yoksa silinir, bilirsiniz ...)
İşte adımlar ve en önemli kısımlar:
- Bir Business Manager hesabına ihtiyacınız var .
- Doğrulama gerekecek ve dijital bir sözleşmenin imzalanması gerekecek.
- Hedef Facebook sayfasını o hesaba eklemeniz gerekir.
- Bir Facebook Uygulaması oluşturmanız ve bu uygulamayı da aynı İşletme Yöneticisi hesabına aktarmanız gerekir.
- Aşağıdaki izinler gerekli olacağından, uygulamanın Facebook'un inceleme sürecinden geçmesi gerekecek:
manage_pages
ve publish_pages
.
- Önemli not Oluşturma sayfası belirteci kullanılarak yapılan gönderilerin, uygulama yöneticileri dışındaki kullanıcılar tarafından görülebilmesi için, o uygulamanın yayınlanmış ve onaylanmış olması gerekir.
- İnceleme için göndermeden konsepti yine de deneyebilirsiniz, ancak gönderiler herkese açık olmayacaktır.
- Business Manager hesabında (yalnızca uygulamanız ve sayfanız hesaba eklendikten sonra), Sistem Kullanıcısı adı verilen bir şey oluşturmanız ve bu kullanıcıya hedef Facebook sayfasına yönetici rolünü (veya izinlerini) vermeniz gerekir .
- Bir sistem kullanıcısı İşletme Yöneticisi hesabına aittir ve belirli bir kullanıcıya bağlı değildir. Şu anki anlayışıma göre, bir sistem kullanıcısı için önemli bir kullanım durumu, Facebook'un Graph API'sine programlı erişimdir (tam da ihtiyacımız olan şey).
- Ardından, bu sistem kullanıcısı için bir erişim jetonu oluşturmanız gerekir (bu hiçbir zaman sona ermeyecektir). Hangi uygulamayı seçmeniz istenecektir. Daha sonra hedef uygulamanızı seçeceksiniz.
- Daha sonra, hiçbir zaman sona ermeyen bir sayfa jetonu oluşturmak için oluşturulan uygulama jetonunu kullanmanız gerekecek. Prosedür bu makalede şu şekilde açıklanmaktadır :
GET /<PAGE_ID>?fields=access_token&access_token=<SYSTEM_USER_ACCESS_TOKEN>
Bu jetonun süresi asla dolmayacak ve belirli bir Facebook kullanıcısına bağlı olmayacak, bu yüzden tam da ihtiyacımız olan şey bu!
Son kısım, Facebook uygulamanızın Facebook tarafından onaylanmasını sağlamaktır. Aslında en önemli kısım, çünkü insanlar gönderilerimizi görmezse tüm prosedür değersizdir.
Sonunda Facebook onu reddetmeden müşterim için bir şeyler inşa etmek için yukarıdaki prosedüre güvenebileceğimi kesin olarak bilmek istedim, bu yüzden önceden (yani müşterimin projesinde çalışmaya başlamadan önce), tüm süreci uyguladım. bir sayfa, uygulama, İşletme Yöneticisi hesabı vb. oluşturmak. İşletmemi doğruladım. Uygulamamı incelenmek üzere gönderdim. İsteğimde, kullanım durumum hakkında çok net bir şekilde konuştum ve uygulamanın "kendi kendine kullanım" için olduğunu vurguladım (yani, kuruluş diğer Facebook kullanıcıları için değil, kendisi için bir uygulama geliştiriyor). 24 saatten az olmadan onay aldım.
Uygulama inceleme süreciyle ilgili birkaç not daha:
- Uygulama için bir platform seçmem gerekti, bu yüzden web sitesini seçtim .
- Uygulamanın neden iki izne ihtiyacı olduğunu ve bunları nasıl kullanacağını belirtmem gerekiyordu.
- İnceleyenin neden uygulamamda oturum açıp deneyemeyeceğini belirtmem gerekiyordu (örneğin, uygulama bir çalışan süreç tarafından kullanılacağı için).
- Zorunlu ekran
curl
kayıtları için, yardımcı programı kullanarak terminaldeki manuel işlemleri basitçe sundum (sayfa jetonunu oluşturmak ve Facebook sayfasına gönderiler yapmak için). Ayrıca, sistem kullanıcısını sayfaya bağlamak ve bir belirteç oluşturmak için Business Manager'ı nasıl kullandığımı vb. Gösterdim.
- Yine, kullanım durumum hakkında çok spesifik davrandım ve bunun yardımcı olduğunu düşünüyorum.
Umarım bu bilgiler benzer kullanım durumlarına sahip kişiler için yararlı olur.