Sosyal Ağ API'leri: İnternetin Gerçek Dünyaya Açılan Portalı
Yayınlanan: 2022-03-11Google'ın Mayıs 2008'de YouTube API'sinin ilk sürümünü yayınlamasından ve Facebook'un Nisan 2010'da Graph API'nin ilk sürümünü yayınlamasından bu yana sosyal ağ API'leri çok yol kat etti. Bugün, bu API'ler size gönderiler için sosyal ağ platformlarını sorgulama fırsatı veriyor. , kullanıcılar, kanallar ve demografik veriler. Hatta kendi hizmetinizi oluşturmanıza veya kullanıcı tabanınız hakkında daha fazla bilgi edinmenize izin veriyorlar.
Bu yazıda, popüler sosyal ağ API'lerinden bazılarını nasıl kullanabileceğimizi inceleyeceğiz:
- Facebook (Grafik ve Pazarlama API'sı)
- heyecan
- Youtube
Ayrıca sınırlamalarını tartışacağız ve bu API'lerle kullanılabilen bazı yararlı araçları keşfedeceğiz. Makalenin ilerleyen bölümlerinde, bu API'lerin herhangi bir Rails uygulamasına nasıl entegre edileceğine de bakacağız.
Her seferinde bir sosyal ağ API'sine odaklanacağım ve yeteneklerini, sınırlamalarını ve kullanılabilir araçlarını açıklayacağım. Bu makalenin ilerleyen bölümlerinde daha iyi karşılaştırma için farklı API'leri ve özelliklerini içeren bir matris olacaktır.
API'leri kullanmak için öncelikle OAuth tabanlı isteklerle uygulamanız adına sorgular oluşturan bir uygulama kurmanız gerekir. Kullanıcılar, uygulamanıza göre kimlik doğrulaması yapacak ve daha sonra, elde edilen kullanıcı erişim belirteci ile verilerine erişebilirsiniz.
Artık modası geçmiş FQL (Facebook Sorgu Dili), Facebook'tan tüm verilere erişmek için kullanılabilecek SQL benzeri bir sorgu diliydi.
Facebook, Graph API'sinin ilk sürümünü Nisan 2010'da yayınladı. Bu makalenin yazıldığı sırada en son sürüm, 12 Nisan 2016'da tanıtılan 2.6'dır. Sorgulamak için kullanılabilecek düşük seviyeli HTTP tabanlı bir API'dir. veriler, gönderiler oluşturun ve hatta otomatik reklam kampanyaları oluşturun.
Araçlar
Graph API Explorer, Facebook API ile çalışırken en sık kullanılan araçtır. Tarayıcıda Graph API sorguları yürütmenize ve sonuçları incelemenize olanak tanır: Uygulamanızın erişim belirteçlerinden birini kullanabilir veya seçilen kapsamlarla anında bir tane oluşturabilirsiniz.
yetenekler
Graph API, belirli düğümlerde HTTP isteği başına nesneler oluşturmanıza, güncellemenize ve silmenize olanak tanıyan REST tabanlı bir API'dir.
Erişim Simgesi
Graph API'ye karşı sorguları çalıştırmak için, bir kullanıcı uygulamanızda başarılı bir şekilde yetki verir vermez elde edilen bir erişim belirtecine ihtiyacınız vardır. Erişim belirteci, uygulamanız tarafından saklanmalıdır.
Kapsamlar
Kapsamlar, bir kullanıcı adına hangi eylemlerin gerçekleştirilebileceğini belirler. Bir kullanıcı bir uygulamada yetkilendirdiğinde uygulama belirli kapsamlar ister. publish_actions
kapsamı, örneğin, bir uygulamanın bir kullanıcı adına gönderiler yayınlamasına izin verir. E-posta kapsamı, uygulamanın kullanıcının e-postasını okumasını sağlar. Tüm kapsamlara tam bir genel bakış, resmi belgelerde listelenmiştir.
publish_actions
veya ads_management
gibi belirli kapsamlar, uygulamanın yayınlanmasından önce Facebook'un incelemesini gerektirir.
Örnekler
Graph API'nin nasıl çalıştığını göstermek için size API ile gönderilerin nasıl okunacağını, oluşturulacağını, güncelleneceğini ve silineceğini göstereceğim.
Kendi gönderilerinizi almak için /me/posts
GET sorgusunu çalıştırabilirsiniz. Sonuç, mesajları, create_time ve id dahil olmak üzere bir gönderi listesi içeren bir JSON dizesi olacaktır. Yanıtın daha az karmaşık görünmesini sağlamak için pretty
parametresini veya bir JSON biçimlendiricisini kullanabilirsiniz.
Gönderileriniz hakkında daha fazla veri elde etmek için sorguyu sorgu parametreleri olarak alanlarla genişletebilirsiniz. Örneğin, me/posts?fields=reactions, picture
size gönderinin resmini ve tepkilerini verecektir.
Bir gönderi oluşturmak için, message: hello world
gibi parametrelerle, örneğin me/feed
gibi kenar beslemesine karşı bir POST eylemi gönderebilirsiniz. Graph API, oluşturduğunuz gönderinin kimliğiyle bir JSON nesnesi döndürür. Daha sonra http://facebook.com/[post_id]
görüntüleyebilirsiniz.
Bir gönderiyi güncellemek için, parametre olarak güncellenecek alanlar ile gönderinin düğümüne bir POST isteği gönderebilirsiniz; örneğin, /[post_id]
ve Message: lorem ipsum
gibi parametreler. Doğru veya yanlış değerine sahip bir başarı göstergesi döndürülecektir.
Bir gönderiyi silmek için, gönderi kimliğine sahip düğüme DELETE isteğinde bulunabilirsiniz (örneğin, /[post_id]
). Dönüş değeri, true veya false başarı değerine sahip bir JSON nesnesi olacaktır.
Tüm düğümler ve eylemler hakkında tam bir genel bakış, Graph API Reference içinde mevcuttur.
Pazarlama API'sı
Pazarlama API'si, Facebook reklamlarını yönetmek ve uygulamanız aracılığıyla reklam bilgileri almak için güçlü bir araç olduğu için özel olarak anılmayı hak ediyor.
Diğer Graph API yöntemleriyle aynı şekilde çalışır. Ancak, kullanıcının reklamlarına erişmek için ads_management
kapsamına ihtiyacınız vardır. Facebook'un da uygulamanızı yayınlamadan önce incelemesi gerekiyor.
Test yapmak
Uygulamanızı oluşturduğunuzda, geliştirme modundadır ve uygulama kontrol panelinizde otomatik olarak görünür (ör. https://developers.facebook.com/apps/
).
Geliştirme modunda, uygulamanıza yalnızca yöneticiler, geliştiriciler ve test kullanıcıları erişebilir. Uygulama kontrol panelinizin roller bölümüne test kullanıcıları ve yöneticiler ekleyebilirsiniz.
İnceleme Süreci
Belirli izinleri eklerken, yayınlamadan önce Facebook'un uygulamanızı incelemesi gerekir. Gözden geçirme süreci, bu kılavuzlar dizisi tarafından tanımlanır.
Belirli öğeleri incelemeye göndermek için bunları uygulama kontrol panelinizin Uygulama İnceleme bölümüne eklemeniz yeterlidir. Facebook daha sonra inceleme sürecinde size rehberlik edecek ve uygulamanız onaylandığında uyarılacaksınız.
Sınırlamalar ve Geçici Çözümler
Oran Limitleri
Bir uygulama, toplamda kullanıcı başına saatte 200 arama yapabilir. Bu sınıra ulaşırsanız API çağrılarınız hataya neden olur.
Facebook'ta Gönderi Arama
Facebook, Graph API ve FQL aracılığıyla Facebook'ta gönderi ve etiket aramayı kısıtlar. Ancak, herkese açık Facebook gönderilerini aramak için Google Arama API'sını kullanabilir ve ardından Grafik API'si aracılığıyla belirli gönderiler hakkında daha fazla bilgi almak için URL'deki posta kimliğini kullanabilirsiniz.
Özel Kitle Verilerini Alma
Facebook'ta Audience Insights , ilgi alanlarına, demografiye veya diğer niteliklere (ör. e-posta adresleri koleksiyonu) dayalı olarak belirli bir hedef kitle hakkında daha fazla bilgi edinmek için güçlü bir araştırma aracıdır.
Ancak, reklam API'sı aracılığıyla otomatik olarak kitle içgörüleri oluşturmanın bir yolunu bulamadım. Bunun için yaratıcı fikirleriniz veya önerileriniz varsa yorumlarda bize bildirin.
Instagram API'si ilk olarak Nisan 2014'te piyasaya sürüldü ve kullanıcı gönderilerini analiz eden ve kullanıcıların kendi gönderilerini yönetmelerine yardımcı olan uygulamalar oluşturmanıza olanak tanır.
Araçlar
Bu makalenin yazıldığı sırada Instagram'ın API konsolu kullanımdan kaldırıldığından, tarayıcınızda test amacıyla Apigee'yi kullanmanızı öneririm.
yetenekler
Instagram API'si, REST tabanlı bir API'dir. Tüm uç noktaları resmi belgelerinde açıklanmıştır.
Erişim Simgesi
Instagram API'sine karşı sorguları çalıştırmak için, bir kullanıcı uygulamanızda yetki verir vermez elde edilen bir erişim belirtecine ihtiyacınız vardır. Bir kullanıcının erişim belirteci alabilmesi için uygulamanızın yetkilendirme URL'sine yönlendirilmesi gerekir. Sunucu, uygulamanızı yetkilendirdikten sonra kullanıcıyı yeniden yönlendirecek ve ardından belirteci okuyabileceksiniz.
Kapsamlar
Uygulamanız farklı izinler isteyebilir. Örneğin, "temel", bir kullanıcının profil bilgilerini ve medyasını okumanızı sınırlar. "public_content", bir kullanıcı adına herhangi bir genel profili ve medyayı okumanıza olanak tanır.
Örnekler
Instagram API'sinin nasıl çalıştığını göstermek için https://api.instagram.com/v1/media/popular
medya bitiş noktasına dayalı bazı örnekler üzerinden gideceğim.
Bu uç nokta, parametre olarak bir erişim belirteci iletilirse, Instagram'dan şu anda popüler olan medyayı döndürür. Sonuç, her biri için medya kimliğini, resminin bağlantısını, beğenilerini, yorumlarını, onu yayınlayan kullanıcıyı ve diğer bazı nitelikleri içeren bir JSON dizisi dizisi olacaktır.
API uç noktaları ve parametreleri hakkında daha fazla bilgi edinmek ve oynamak için apigee'yi kullanabilirsiniz.
Test yapmak
Instagram platformunda oluşturulan her yeni uygulama sandbox modunda başlar. Bu, uygulamanızı incelemeye göndermeden önce herkese açık API uç noktalarını test etmenize olanak tanıyan tamamen işlevsel bir ortamdır.
Uygulamanızı test etmek için, bir hazırlama sürümü oluşturmanız ve incelemeden geçen canlı sürüm yerine tüm sorguları bu sürüm üzerinden çalıştırmanız yeterlidir.
İnceleme Süreci
Korumalı alan modundaki uygulamalar herhangi bir API uç noktasını kullanabilir, ancak sınırlı sayıda kullanıcı ve medya ile sınırlıdır. Bir uygulamayı geliştirmek ve test etmek için harika bir mekanizmadır.
Canlı yayına geçmek ve tüm Instagram içeriğine erişmek için başvurunuzu incelemeye göndermeniz gerekir. İncelendikten sonra, yalnızca uygulamanızın onaylandığı kullanıcılar için kapsamları talep edebileceksiniz.
Sınırlamalar ve geçici çözümler
Demografik Analiz
Bu makaleyi yazarken, herkese açık bir kullanıcının yaşı, cinsiyeti veya ilgi alanları hakkında bilgi almanın bir yolu yoktur, çünkü Instagram size bu bilgileri sağlamaz.
Takipçiler veya Instagram kullanıcılarının bir listesi hakkında demografik veriler elde etmek için, hepsini tekrarlamanız ve takipçilerine veya biyografilerinde verilen bilgilere göre yaşlarını, cinsiyetlerini veya ilgi alanlarını belirlemeye çalışmanız gerekir.
Bu sorun için iyi bir büyük veri çözümü, bazı şirketler için değerli bir hizmet olabilir.
Oran Limitleri
Instagram platformundaki tüm oran limitleri, 1 saatlik kayan bir pencerede erişim belirteci tarafından kontrol edilir. Canlı uygulamalar, Sandbox Modundaki uygulamalardan daha yüksek hız sınırlarına sahiptir. Canlı bir uygulama için küresel ücret sınırı şu anda saatte 5.000 çağrıdır.
heyecan
Twitter API'si ilk olarak Eylül 2006'da piyasaya sürüldü. Twitter verilerine okuma ve yazma erişimi sağlayan halka açık bir REST API'dir. Kimlik doğrulama, OAuth kullanılarak gerçekleştirilir. Yanıtlar JSON formatındadır.
Araçlar
Twitter, tarayıcıdaki istekleri test etmek için kullanılabilen, apigee tarafından desteklenen bir API konsol aracına sahiptir.
yetenekler
REST API, bir kullanıcının tweet'lerini, takipçilerini ve takip edilen kişileri almanızı sağlar. Diğer tweetlerde de hashtag araması yapabilirsiniz.
Erişim Simgesi
Twitter, kullanıcıların bir erişim belirteci karşılığında kimliklerini doğrulayabilecekleri uygulamalar oluşturmanıza olanak tanır. Kimlik doğrulama modeli OAuth'dur.
Kapsamlar
Uygulamanın ayar sayfasında ayarlanması gereken yalnızca iki izin vardır: Salt okunur ve Okuma ve Yazma. İkincisi, bir kullanıcı adına tweet'ler oluşturmanıza ve diğer gönderi işlemlerini gerçekleştirmenize olanak tanır.
Örnekler
Twitter API'sinin kullanımını göstermek için yetkili kullanıcının tweet'lerini alacağım. Sonuç, tweet'in resimleri, favorileri, retweetleri, url'leri, oluşturulma tarihi ve diğer nitelikleri içeren bir JSON dizisidir. API uç noktaları ve parametreleri hakkında daha fazla bilgi edinmek için Apigee'yi kullanın.
Test ve İnceleme Süreci
Şu anda Twitter API'si için inceleme süreci veya test modu bulunmamaktadır.

Sınırlamalar ve Geçici Çözümler
Demografik Analiz
Şu anda birinin Twitter takipçilerinden demografik veri almanın kolay bir yolu yok. Kaba kuvvet yaklaşımı, her takipçiye göz atmak ve verileri biyografileri ve bağlantılı sosyal ağ hesapları aracılığıyla almaya çalışmak olacaktır.
Ardından, veri analizi yoluyla toplanan takipçi verilerine dayanarak daha fazla varsayımda bulunabilirsiniz. Daha fazla bilgi edinmenin başka bir yolu da Twitter'ın ücretli kurumsal API platformu GNIP'dir. Diğer şeylerin yanı sıra, API aracılığıyla kitleler oluşturmanıza ve bunlar hakkında bilgi almanıza olanak tanır. API şu anda BETA'da.
Oran Limitleri
Twitter'ın kullanıcı bazında ve 15 dakikalık bazında oran limitleri vardır. Uygulamanızın birden fazla jetonu varsa, sınıra ulaşmaktan kaçınmak için genel işlemler için jetonları değiştirebilirsiniz.
Youtube
YouTube Veri API'si ilk olarak Ocak 2013'te tanıtıldı. Uygulamanıza YouTube özellikleri eklemenize, içerik aramanıza ve bir YouTube kanalının demografisini analiz etmenize olanak tanır. JSON yanıtlarını döndüren, belirteç tabanlı bir OAuth REST API'sidir.
Araçlar
API Gezgini, yetkisiz ve yetkili istekleri test etmenize olanak tanır. Sağlanan uç noktalara karşı tarayıcınızdan istekleri çalıştırabilirsiniz.
yetenekler
Diğer şeylerin yanı sıra etkinlikler, sohbetler, canlı yayınlar, oynatma listeleri, kanallar, videolar ve aboneliklerle çalışabilirsiniz. Uç noktaların çoğu, bir YouTube hesabıyla yetkilendirmenizi gerektirir.
Erişim Simgesi
YouTube Veri API'si, özel kullanıcı verilerine erişim yetkisi vermek için OAuth 2.0 protokolünü destekler. Bir kullanıcı uygulamanızda yetkilendirildikten sonra, erişim belirtecinin kaydedilmesi gereken uygulamanıza yönlendirilecektir.
OAuth 2.0 yetkilendirmesini kullanmak için öncelikle Google geliştirici konsolunda yetkilendirme kimlik bilgilerini almanız gerekir.
Kapsamlar
YouTube Veri API'si şu anda aşağıdaki kapsamları desteklemektedir:
- SSL'yi Zorla - Youtube hesabınızı yönetin, ancak yalnızca bir SSL bağlantısı üzerinden.
- Varsayılan - YouTube hesabınızı yönetin. Bu kapsam, youtube.force-ssl kapsamı ile işlevsel olarak aynıdır ancak bir SSL bağlantısı gerektirmez.
- Salt Okunur - YouTube hesabınızı görüntüleyin.
- Yükle - YouTube videolarını yükleyin ve YouTube videolarınızı yönetin.
- Ortak Kanal Denetimi - Çok Kanallı Ağların ağlarındaki bir kanalı kabul etmek veya reddetmek için ölçüt olarak kullandığı bilgileri alın.
Örnekler
Youtube Data API kullanımına örnek olarak, başlığında ve açıklamasında "kodlama" bulunan videolar için aşağıdaki istek sorguları:
https://www.googleapis.com/youtube/v3/search?part=snippet&q=coding&key={YOUR_API_KEY}
Sonuç; başlık, açıklama, video kimliği ve kanal kimliği içeren bir JSON nesnesidir. Kanal hakkında daha fazla bilgi edinmek için ikincisini kullanabilirsiniz.
Belirli bir kaynağı döndüren herhangi bir API isteği için part
parametresi gereklidir. Parametre, bir API yanıtına dahil edilmesi gereken kaynak özelliklerini tanımlar. Örneğin, bir video kaynağında şu bölümler bulunur: snippet, içerikAyrıntıları, dosyaAyrıntıları, oynatıcı, işlemeAyrıntıları, kayıtAyrıntıları, istatistikler, durum, öneriler, konuAyrıntıları.
API anahtarı dışındaki tüm diğer parametreler, çağrıdan çağrıya farklılık gösterir. API başvuru kılavuzunda bununla ilgili daha fazla bilgi edinin.
Pinterest API ilk olarak Nisan 2015'te piyasaya sürüldü. Bir kullanıcının panoları, pinleri, takipçileri ve daha fazlası gibi Pinterest verilerine erişim sağlayan RESTful bir API'dir. Pinterest API, OAuth'u kullanır ve bir kullanıcının içeriğiyle etkileşim kurarken hem okuma hem de yazma izinlerine izin verir.
Araçlar
Diğerleri gibi, Pinterest de uç noktalarını test etmek ve onlara karşı sorguları çalıştırmak için bir API Gezgini sağlar. Tüm araçlarına buradan göz atabilirsiniz.
yetenekler
Pinterest REST API, pinler, panolar oluşturmanıza ve OAuth ile Pinterest verilerini sorgulamanıza olanak tanır.
Erişim Simgesi
Pinterest, uygulamanız ve kullanıcılarınız arasındaki isteklerin kimliğini doğrulamak için OAuth 2.0'ı kullanır. Tüm istekler HTTPS üzerinden yapılmalıdır.
Kapsamlar
Kapsamlar, bir uygulamanın kullanıcı adına neler yapabileceğini belirler. Pinterest aşağıdaki kapsamları kullanır:
-
none
(tanımlayıcıyı bilmeli): Bir kullanıcının profilinde, panoda ve Pin ayrıntılarında ve panodaki Pinlerde GET yöntemini kullanın. -
read_public
: Bir kullanıcının Pinlerinde, panolarında ve beğenilerinde GET yöntemini kullanın. -
write_public
: Bir kullanıcının Pinlerinde ve panolarında PATCH, POST ve DELETE yöntemlerini kullanın. -
read_relationships
: Bir kullanıcının takiplerinde ve takipçilerinde (panolarda, kullanıcılarda ve ilgi alanlarında) GET yöntemini kullanın. -
write_relationships
: Bir kullanıcının takiplerinde ve takipçilerinde (panolarda, kullanıcılarda ve ilgi alanlarında) PATCH, POST ve DELETE yöntemlerini kullanın.
Örnekler
Pinterest API'sinin kullanımını göstermek için, kullanıcının en son pinlerinin nasıl okunacağını göstereceğim:
https://api.pinterest.com/v1/me/pins/?access_token={your_token}&fields=id,link,note,url,counts,board,created_at
bir kullanıcının pinlerini kimliği, bağlantısı, notu ile birlikte döndürür, url, beğeniler ve repinler.
Test ve İnceleme Süreci
Uygulamalar başlangıçta geliştirme modundadır ve üretim modunda yayınlanmadan önce incelemeye gönderilmelidir.
Sınırlamalar ve geçici çözümler
Demografik Analiz
Bir panodan demografik veri almanın yaygın bir yolu yoktur. Bununla birlikte, bir panonun takipçilerini ve onlar hakkında bilgileri biyografilerinden ve diğer sosyal ağ hesaplarına olan bağlantılardan almayı deneyebilirsiniz. Kullanıcının ortak bağlantıları üzerinden bir büyük veri çözümü de bir olasılık olabilir.
Pin Ara
Şu anda API aracılığıyla belirli etiketlere veya anahtar kelimelere sahip pinleri aramanın bir yolu yoktur. Yalnızca Pinterest pinlerinde sonuç aramak ve URL üzerinden pin kimliğini toplamak için Google Özel Arama API'sını kullanarak bu sınırlamayı aşabilirsiniz. Kimlik daha sonra API aracılığıyla pin hakkında bilgi almak için kullanılabilir.
Oran Limitleri
Her uygulamaya (benzersiz bir uygulama kimliğine sahip), her benzersiz kullanıcı belirteci için saatte uç nokta başına 1.000 çağrıya izin verilir.
Her API yanıtı, size hız sınırları hakkında bir güncelleme sağlayan bir başlık döndürür. X-Ratelimit-Limit, bu özel istek için hız limitidir ve X-Ratelimit-Remaining, 60 dakikalık pencerede bıraktığınız istek sayısıdır.
Belirli bir uç nokta için hız sınırınızı aşarsanız, 429 "Çok fazla istek" hata kodu alırsınız.
Sosyal Ağ API'lerinin Karşılaştırılması
sürüm | OAuth | Biçim | demografi | |
---|---|---|---|---|
v2.6 İlk Sürüm: Nisan 2010 | OAuth 2 | JSON yanıtlarıyla REST istekleri | Desteklenen | |
v1 İlk Yayın: Nisan 2014 | OAuth 2 | JSON yanıtlarıyla REST istekleri | Desteklenmiyor | |
heyecan | v1.1 İlk Çıkış Tarihi: Eylül 2006 | OAuth 1 | JSON yanıtlarıyla REST istekleri | Yalnızca GNIP ile desteklenir |
Youtube | v3 İlk Sürüm: Ocak 2013 | OAuth 2 | JSON yanıtlarıyla REST istekleri | Desteklenen |
v1 İlk Sürüm: Nisan 2015 | OAuth 2 | JSON yanıtlarıyla REST istekleri | Desteklenmiyor |
Devise ile Demo Uygulaması
Çok sayıda sosyal ağ API paketi ve kitaplığı sayesinde bu API'leri yeni veya mevcut uygulamalarınıza entegre etmek her zamankinden daha kolay. Çoğu modern platform ve çerçeve, tüm bu API'leri düzgün eklenti mimarisine sahip tek bir kitaplıkta bile kimlik doğrulama yönünü birleştiren, zamanla test edilmiş üçüncü taraf kitaplıklarına sahiptir.
Bu makale için, bir Ruby cevheri olan Devise'in bunu Rails uygulamaları için nasıl bu kadar zarif bir şekilde yaptığına bir göz atacağız. Devise, birden fazla oturum açma sağlayıcısı için kimlik doğrulama, kayıt, oturum açma ve veri depolama uygulayan Warden'a dayalı esnek bir kimlik doğrulama kitaplığıdır. Daha çok ön uç bir adamsanız ve AngularJS için benzer bir şeyi kontrol etmek istiyorsanız, bu makaleye bir göz atın.
Devise, bu sınıfın çoğu kitaplığı gibi, yukarıda belirtilen sosyal ağ API'lerinden herhangi biri için yerleşik destekle birlikte gelmez. Bu sosyal ağ API'lerinin her biri için destek, ek taşlar aracılığıyla sağlanır. Bu makalede ele alınan 5 sağlayıcıyı kapsayan Rails kimlik doğrulaması için aşağıdaki değerli taşlar mevcuttur:
gem 'omniauth-facebook' gem 'omniauth-pinterest' gem 'omniauth-twitter' gem 'omniauth-google-oauth2' gem 'omniauth-instagram'
Bunlar yalnızca bu sağlayıcıların her biri için kimlik doğrulama, kayıt, oturum açma ve depolama sağladığından, gerçek API istemcileri için aşağıdaki değerli taşları da almamız gerekecek:
gem 'twitter' # https://github.com/sferik/twitter gem 'instagram' # https://github.com/facebookarchive/instagram-ruby-gem gem 'koala' # (Facebook API) https://github.com/arsduo/koala gem 'google-api-client' # (YouTube API), https://github.com/google/google-api-ruby-client gem 'pinterest-api' # https://github.com/realadeel/pinterest-api
Omniauth ve Kimlik Doğrulama
Bir kullanıcının sağlayıcınızla uygulamanızı yetkilendirmesi için aşağıdaki yolu içeren bir bağlantı sağlamanız yeterlidir:
omniauth_authorize_path('user', :facebook) omniauth_authorize_path('user', :instagram) ...
Bir kullanıcının kimliğini doğruladıktan sonra geri aramaya tepki vermek için, aşağıdaki gibi işlevler içeren bir OmniauthCallbacksController tanımlayabilirsiniz:
class AuthenticationsController < Devise::OmniauthCallbacksController def facebook if request.env["omniauth.auth"] ... end end end
Uygulamanıza belirteç ve verilerle yeni bir Kimlik Doğrulama modeli ekleyeceğiniz yer burasıdır:
authentication = where(provider: omniauth.provider, user_id: user.id) .first_or_create do |auth| auth.user = user auth.uid = omniauth.uid auth.secret = omniauth.credentials.secret auth.token = omniauth.credentials.token ... end
API Çağrıları Yapma
İşte Facebook API'sini sorgulamak için Koala'nın nasıl kullanılacağına dair bir örnek. Sağlayıcıların geri kalanı aşağı yukarı benzer şekilde çalışır ve gem'in README belgesinde belgelenir.
Koala'yı kullanarak kullanıcı verilerinizi şu şekilde alırsınız:
authentication = user.authentication_for_provider(:facebook) token = authentication.token api = Koala::Facebook::API.new(token) results = api.get_object("me")
Daha sonra API tarafından döndürülen JSON sonucunu kullanabilirsiniz. Bu demo uygulamasının kaynak kodu GitHub'da mevcuttur.
Sarmak
Sosyal ağ API'leri, sosyal ağların büyük veri kümesini sorgulamak ve uygulamanız için büyük veri toplamak için size güçlü bir araç sağlar. Bu API'lerin üzerine bir hizmet oluşturabilir veya bunları kendi uygulamanızı ve kullanıcı içgörülerinizi geliştirmek için kullanabilirsiniz.
Rails ve mevcut değerli taşlar, bu API'leri Rails uygulamanıza entegre etmeyi ve uygulamanız ile API arasında bir soyutlama katmanıyla arayüzleri sorgulamayı kolaylaştırır.