Sosyal Ağ API'leri: İnternetin Gerçek Dünyaya Açılan Portalı

Yayınlanan: 2022-03-11

Google'ı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ı)
  • Instagram
  • heyecan
  • Youtube
  • Pinterest

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.

Sosyal Ağ API'leri: İnternetin Gerçek Dünyaya Açılan Portalı

Kullanıcılarınızı kendilerinden daha iyi tanımak için sosyal ağ API'lerini kullanın.
Cıvıldamak

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.

Facebook

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

Instagram API çizimi

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 API çizimi

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

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
Facebook v2.6
İlk Sürüm: Nisan 2010
OAuth 2 JSON yanıtlarıyla REST istekleri Desteklenen
Instagram 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
Pinterest 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.

Sosyal ağ API illüstrasyonu

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'
Rails ile ilgili en iyi şeylerden biri, açık kaynak topluluğu tarafından yazılmış birçok eklentinin olmasıdır. Bunlar mücevher olarak dağıtılır. Merkezi bir yapılandırma dosyası altında listelenen bu taşlar, Bundler tarafından yönetilir.

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.