Python ve Twitter API İle Tüm Like Geçmişini Temizleme Botu
6 min read

Python ve Twitter API İle Tüm Like Geçmişini Temizleme Botu

Python ve Twitter API v2 kullanarak geçmiş like'larınızı unlike yapan bot hazırlıyoruz.
Python ve Twitter API İle Tüm Like Geçmişini Temizleme Botu
Photo by Joshua Hoehne / Unsplash

Python ve Twitter API kullanarak like geçmişinizi tek tek kaldırmak yerine yazacağımız bot yardımı ile topluca ve hızlıca kaldırabiliriz. Üstelik herhangi bir zararlı yazılım kullanmadan hesabınızı kendi API istekleriniz ile güvenle yönetmiş olacaksınız.

Twitter API, Twitter verilerinizi programatik olarak yönetmenize izin verir. Yakın zamanda yayınlanan Twitter API v2 ise birçok yeni ve gelişmiş özelliğe sahiptir.

Twitter API v2, birincil Twitter API'si olsa da, platform şu anda önceki sürümleri de (v1.1, Gnip 2.0) desteklemektedir. Gelecekteki tüm yeniliklerin gerçekleşeceği yer burası olduğundan, tüm kullanıcıların v2 ile başlamasını öneririz.

Twitter API v2, platformdaki kullanımınızı ölçeklendirmenize yardımcı olacak birkaç erişim düzeyi içerir. Genel olarak, yeni hesaplar ücretsiz Temel erişim için hızlı bir şekilde kaydolabilir. Tüm erişim düzeyleri arasındaki farklar tablosunu görmek için şu bağlantıya gidebilirsiniz.

Python ile Twitter API v2 kullanacağımız için öncelikle Twitter Developer Platform'a kayıt olmanız gerekmektedir.

Açılan sayfada gerekli olan alanları doldurarak Developer panele kayıt olabilirsiniz.

Mailinize gelen bağlantıyı takip ederek Twitter API'yi neden kullanmak istediğinizi anlatan formu doldurup başvuruyu tamamlayabilirsiniz.

Başvurunuzun kabul olma süreci 1-2 gün sürebilir. Başvurunuz kabul edildikten sonra Twitter API'yi kullanmaya başlayabilirsiniz.

Twitter API kullanımına başlamak için sıradaki işlem bir Proje ve Uygulama oluşturmaktır. Bunları da panele girdiğinizde karşınıza çıkan Create Project butonunu kullanarak oluşturabilirsiniz.

Artık projemiz de hazır olduğuna göre API versiyonları, key ve authentication methodlarından bahsedebiliriz.

Twitter API bir çok versiyona sahiptir;

  • Twitter Ads API
  • Twitter API: Standard v1.1
  • Twitter API: Premium v1.1
  • Twitter API: Enterprise (Gnip 2.0)
  • Twitter API v2

Biz bu API versiyonlarından en yeni ve en kapsamlı olan v2 yi kullanacağız. Eğer v1 kullanıyorsanız siz de bir an önce v2 ye migration işlemine başlasanız iyi olur.

Twitter API'leri çok büyük miktarda veriyi işler. Bu verilerin hem geliştiriciler hem de kullanıcılar için güvenliğini sağlamanın yolu, kimlik doğrulamasından geçiyor. Kimlik doğrulama için her biri aşağıda listelenen birkaç yöntem vardır.

  1. Basic authentication
  2. OAuth 1.0a User Context
  3. OAuth 2.0 Bearer Token (App-Only)
  4. OAuth 2.0 Authorization Code Flow with PKCE

Birçok library bu entergrasyonları otomatik olarak ele aldığından, çoğu geliştiricinin kimlik doğrulama karmaşıklıklarıyla uğraşması gerekmeyecektir. Fakat hangi işlem için hangi doğrulama mekanizmasını kullanmanız gerektiğini bilmeniz gerekmektedir.

Hangi endpoint için hangi authentication yöntemini kullanabileceğinizi aşağıdaki linkte yer alan tablodan öğrenebilirsiniz:

🌎 Twitter API v2 authentication mapping table

Örneğin, bu tabloya baktığımızda, tweet detaylarını almak için kullanabileceğimiz "Tweet lookup" endpointleri için tüm Oauth methodlarını kullanabilecekken, bu yazımızda yapacağımız "Manage Likes" endpointleri OAuth 2.0 App Only yani Baerar Token ile çalışmamaktadır.

Token konusundan bahsetmişken, Twitter API kullanırken karşılacağınız key'ler şunlardır:

  • Consumer Key: API istekleri yaparken uygulamanızı temsil eden kullanıcı adı olarak düşünün.
  • Consumer Key Secret: API istekleri yaparken uygulamanızı temsil eden şifre olarak düşünün.
  • Bearer Token: Taşıyıcı Simgesi, geliştirici Uygulamanız adına isteklerin kimliğini doğrular.
  • Access Token: OAuth 1.0a API isteklerinin kimliğini doğrulamak için kullanılan kullanıcıya özel kimlik bilgileridir. Talebin adına yapıldığı Twitter hesabını belirtirler.
  • Access Token Secret: OAuth 1.0a API isteklerinde Access Token için Secret Keydir.
  • OAuth 2.0 Client ID: OAuth 2.0'ı bir kimlik doğrulama yöntemi olarak kullanmanıza izin veren kullanıcı adı olarak düşünün.
  • OAuth 2.0 Client Secret: OAuth 2.0'ı bir kimlik doğrulama yöntemi olarak OAuth 2.0'ı kullanmanıza izin veren parola olarak düşünün.
💡
Twitter API v1 ile OAuth 1.0a User Context kullanırken, Twitter API v2 ile OAuth 2.0 metodlarını kullanmalısınız.
💡
Uygulamanıza ve hesabınıza ait tüm keyler geliştirici portalında bulunan Twitter geliştirici Uygulamaları bölümünden edinilebilir.
Şekil 1: İlgili keyleri bu sayfadan elde edebilirsiniz.

Artık Twitter API temellerininden bahsettiğimize göre kodu paylaşabiliriz. Aşağıdaki linkte paylaştığım Github repoyu ziyaret ederek main.py dosyasındaki credentials bilgilerini kendi bilgilerinizle değiştiriniz.

GitHub - ismetbalat/twitter-unlike-bot: Twitter Unliker
Twitter Unliker. Contribute to ismetbalat/twitter-unlike-bot development by creating an account on GitHub.

Ardından programı çalıştırarak ekranda gördüğünüz URL'i ziyaret ediniz.

Şekil 2: Terminalde oluşturulan URL adresini ziyaret ediniz.

Açılan Oauth izin penceresindeki butonu kullanarak gerekli izini veriniz.

Şekil 3: Oauth penceresinde gerekli izin butonuna tıklayınız.

Ardından callback URL'inize yönlendirileceksiniz. Bu URL yi Developer Panel'de Oauth ayarlarından düzenleyebilirsiniz. Şimdi açılan sayfa URL adresindeki oauth_verifier parametresinde yazan kodu kopyalayınız.

Bu kodu terminale yapıştırınız.

Şekil 4: Aldığınız kodu terminale yapıştırınız ve Enter'layınız.

Bot çalışmaya başladığında tüm beğenileriniz üzerinde gezecek ve hepsini beğenilerinizden çıkaracak.

Şekil 5: Bot çalışmaya başladı.
🛑
Beğenisi kaldırılan tweetleri mobil uygulamada halen "Beğeniler" sayfanızda görüyor olabilirsiniz. Fakat tweet detayına girdiğinizde aslından like'ının kaldırıldığını göreceksiniz. Bu bug için Twitter'a mail attım. Birkaç saat sonra ilgili durumunun düzeldiğini, masaüstü süremünde ise böyle bir problemin olmadığını da belirtmek isterim.

Bot hakkında sorunuz varsa aşağıdaki yorum kutusunu kullanabilirsiniz.