செஸ் போட்டி அறிவிப்புகளை தானியங்குபடுத்துவதற்கான OAuth அங்கீகாரத்தைப் புரிந்துகொள்வது
இன்றைய வேகமான டிஜிட்டல் சூழலில், X (முன்பு Twitter) போன்ற தளங்களுக்கு புதுப்பிப்புகளை அனுப்புவது போன்ற சமூக ஊடக வேலைகளை தானியக்கமாக்குவது டெவலப்பர்களுக்கு அதிக முக்கியத்துவம் வாய்ந்ததாகி வருகிறது. பாதுகாப்பான API அணுகலுக்குத் தேவைப்படும் OAuth 1.0 அனுமதியைக் கையாள்வது இந்த தானியங்குச் செயல்பாட்டில் உள்ள ஒரு பொதுவான பிரச்சனையாகும்.
Scala டெவலப்பர்களுக்கு, X இன் API v2 உடன் ஒருங்கிணைப்பது கடினமாக இருக்கலாம், குறிப்பாக STTP போன்ற நூலகங்களைப் பயன்படுத்தும் போது. OAuth 1.0, அதன் சிக்கலான தன்மைக்காக அங்கீகரிக்கப்பட்டுள்ளது, கையொப்பங்கள் மற்றும் தலைப்புகளை உருவாக்குவதற்கான சரியான படிகள் தேவை. இந்த செயல்பாட்டில் உள்ள சிறிய குறைபாடுகள் கூட அங்கீகார தோல்விகளை விளைவிக்கும், இது பல டெவலப்பர் திட்டங்களில் சாட்சியாக உள்ளது.
இந்த கட்டுரையில், செஸ் போட்டி அறிவிப்புகளை தானியங்குபடுத்தும் முயற்சியில் OAuth 1.0 அங்கீகாரம் தோல்வியடைந்த ஒரு நிஜ உலக உதாரணத்தின் மூலம் நான் உங்களுக்கு வழிகாட்டுகிறேன். குறியீட்டைப் பார்த்து, வழக்கமான சிக்கல்களைக் கண்டறிந்து, 401 அங்கீகரிக்கப்படாத பிழையைச் சரிசெய்வோம்.
OAuth 1.0 இன் உள் செயல்பாடுகள் மற்றும் தேவையான தலைப்புகளை எவ்வாறு சரியாக உருவாக்குவது என்பதைப் புரிந்துகொள்வது, Scala மற்றும் X API v2 உடன் செயல்பாடுகளை நம்பகத்தன்மையுடன் தானியங்குபடுத்த உங்களை அனுமதிக்கும். விவரங்களுக்குள் சென்று அந்த அங்கீகாரச் சிக்கல்களை ஒவ்வொன்றாகத் தீர்ப்போம்.
கட்டளை | பயன்பாட்டின் உதாரணம் |
---|---|
Mac.getInstance() | இந்தக் கட்டளையானது ஒரு குறிப்பிட்ட கிரிப்டோகிராஃபிக் நுட்பத்திற்கான Mac வகுப்பின் உதாரணத்தை உருவாக்குகிறது, இந்த வழக்கில் "HmacSHA1", OAuth கையொப்ப உருவாக்கத்திற்கான விசை-ஹாஷ் செய்தி அங்கீகாரக் குறியீட்டை (HMAC) உருவாக்கப் பயன்படுகிறது. |
SecretKeySpec | இது HMAC-SHA1 அல்காரிதத்திற்கான முக்கிய விவரக்குறிப்புகளை உருவாக்க பயன்படுகிறது. இது ரகசிய விசையை (நுகர்வோர் மற்றும் டோக்கன் ரகசியங்கள்) பைட் வரிசையாக மாற்றுகிறது, இது மேக் கிளாஸ் கிரிப்டோகிராஃபிக் செயல்பாடுகளைச் செய்ய பயன்படுத்தக்கூடும். |
doFinal() | வழங்கப்பட்ட தரவை செயலாக்குவதன் மூலம் HMAC கையொப்பம் உருவாக்கப்பட்டது (இந்த வழக்கில், OAuth அடிப்படை சரம்). இந்த முறை HMAC கணக்கீட்டை முடித்து, கையொப்பத்தைக் குறிக்கும் பைட் வரிசையை வழங்குகிறது. |
Base64.getEncoder().encodeToString() | இந்த முறை HMAC-SHA1 செயல்பாட்டின் மூலம் உருவாக்கப்பட்ட பைட் வரிசையை Base64 சரமாக குறியாக்குகிறது, இது OAuth கையொப்பம் HTTP பரிமாற்றத்திற்காக சரியாக வடிவமைக்கப்பட வேண்டும். |
URLEncoder.encode() | URL குறியாக்க நுட்பத்தைப் பயன்படுத்தி ஒரு சரத்தை குறியாக்குகிறது, OAuth அளவுருக்களில் உள்ள சிறப்பு எழுத்துக்கள் (இடைவெளிகள் மற்றும் ஆம்பர்சண்ட்கள் போன்றவை) HTTP கோரிக்கையில் சேர்ப்பதற்காக சரியாக குறியாக்கம் செய்யப்பட்டுள்ளன என்பதை உறுதிப்படுத்துகிறது. |
Header | HTTP கோரிக்கை தலைப்புகளை உருவாக்க ஹெடர் ஆப்ஜெக்ட்கள் பயன்படுத்தப்படுகின்றன. இந்த சூழ்நிலையில், OAuth அளவுருக்கள் மற்றும் உருவாக்கப்பட்ட கையொப்பம் கொண்ட OAuth அங்கீகார தலைப்பை உருவாக்க மட்டுமே இது பயன்படுத்தப்படுகிறது. |
basicRequest | இந்த STTP கட்டளை ஒரு HTTP கோரிக்கையைத் தொடங்குகிறது. இந்த எடுத்துக்காட்டில், சரியான தலைப்புகள் மற்றும் உடல் உள்ளடக்கத்துடன் Twitter API க்கு POST கோரிக்கையை அனுப்ப இது அமைக்கப்பட்டுள்ளது. |
response(asJson) | இந்தச் செயல்பாடு API பதிலை JSON பொருளாக மாற்றுகிறது, திரும்பிய தரவு நிரலால் கட்டமைக்கப்பட்டு பாகுபடுத்தப்படுவதை உறுதி செய்கிறது. |
send() | ட்விட்டர் API க்கு HTTP கோரிக்கைகளை அனுப்புவதற்கான இறுதி நுட்பம் இதுவாகும். கோரிக்கை முடிக்கப்பட்டு, மேலும் செயலாக்கத்திற்கு பதில் அனுப்பப்படும் என்பதற்கு இது உத்தரவாதம் அளிக்கிறது. |
STTP உடன் ஸ்கலாவில் OAuth 1.0 அங்கீகாரத்தைக் கையாளுதல்
மேலே உள்ள ஸ்கிரிப்ட்கள், HMAC-SHA1 கையொப்பங்களுடன் OAuth 1.0 வழியாக X (முன்பு Twitter) க்கு API வினவல்களை அங்கீகரிப்பதில் உள்ள சிக்கலைத் தீர்க்கும் நோக்கம் கொண்டது. "401 அங்கீகரிக்கப்படாத" செய்தியைப் பெறுவதைத் தவிர்க்க தேவையான அங்கீகார தலைப்பை உருவாக்குவதே முக்கிய சிரமம். முதல் ஸ்கிரிப்ட் பயன்பாட்டு செயல்பாடுகளை வரையறுக்கிறது urlஎன்கோடு, இது URL களில் பாதுகாப்பான செருகலுக்கான சிறப்பு எழுத்துக்களை குறியாக்குகிறது. OAuth அளவுருக்கள் சரியாக வடிவமைக்கப்பட்டுள்ளன என்பதை உறுதிப்படுத்த இது மிகவும் முக்கியமானது. தி உருவாக்கவில்லை செயல்பாடு ஒவ்வொரு கோரிக்கைக்கும் ஒரு தனிப்பட்ட அடையாளங்காட்டியை வழங்குகிறது, கூடுதல் பாதுகாப்பை வழங்குகிறது.
தி ஷ1 அடையாளம் முறையானது சரியான கையொப்பத்தை உருவாக்குகிறது, இது OAuth நடைமுறையின் மிக முக்கியமான அங்கமாகும். இந்த முறை HTTP முறை, API எண்ட்பாயிண்ட் மற்றும் குறியிடப்பட்ட OAuth வாதங்களைக் கொண்ட கையொப்ப அடிப்படை சரத்தின் ஹாஷை உருவாக்க HMAC-SHA1 குறியாக்கத்தைப் பயன்படுத்துகிறது. ஹாஷ் பின்னர் Base64-குறியீடு செய்யப்பட்டு இறுதி கையொப்ப சரத்தை உருவாக்குகிறது, இது அங்கீகார தலைப்பில் சேர்க்கப்பட்டுள்ளது. Twitter API உடன் தொடர்பு கொள்ளும்போது API கோரிக்கை சரியாக அங்கீகரிக்கப்பட்டதாக இந்தப் படி உத்தரவாதம் அளிக்கிறது.
கையொப்பம் உருவாக்கப்பட்டவுடன் அங்கீகார தலைப்பு உருவாக்கப்படும். தி கையொப்பமிட்ட தலைப்பு முறை OAuth அளவுருக்கள் (நுகர்வோர் விசை, டோக்கன், அல்லாத மற்றும் நேர முத்திரை) வரைபடத்தை உருவாக்குகிறது, அவை அகரவரிசைப்படி வரிசைப்படுத்தப்பட்டு சரமாக வடிவமைக்கப்பட்டுள்ளன. தி OAuth உரை "OAuth" உடன் முன்னொட்டாக உள்ளது மற்றும் HTTP கோரிக்கைக்காக அனைத்து கூறுகளும் சரியாக குறியாக்கம் செய்யப்பட்டுள்ளதை உறுதி செய்யும், முன்பு தயாரிக்கப்பட்ட கையொப்பத்தை உள்ளடக்கியது. இங்கு உருவாக்கப்பட்ட தலைப்பு பொருள் API அழைப்பிற்கு அனுப்பப்படுகிறது.
இறுதியாக, தி உருவாக்கு இடுகை ட்விட்டரின் API க்கு HTTP POST கோரிக்கையை முறை சமர்ப்பிக்கிறது. ஸ்கிரிப்ட் பயன்படுத்துகிறது STTP அனுமதி தலைப்பு, உள்ளடக்க வகை மற்றும் இடுகை உள்ளடக்கத்துடன் (ஒரு எளிய சோதனை செய்தி) கோரிக்கையை உருவாக்க நூலகத்தின் அடிப்படை கோரிக்கை முறை. கோரிக்கை ட்விட்டரின் API க்கு அனுப்பப்பட்டது, மேலும் அது வெற்றிகரமாக இருந்ததா அல்லது சிக்கல் நீடிக்கிறதா என்பதை தீர்மானிக்க பதில் செயலாக்கப்படும். தவறான நேர முத்திரைகள், மோதல்கள் மற்றும் மோசமாக கையொப்பமிடப்பட்ட கோரிக்கைகள் போன்ற சிக்கல்களைக் கண்டறிவதில் பிழை கையாளுதல் மிகவும் முக்கியமானது.
Twitter APIக்கான Scala மற்றும் STTP உடன் OAuth 1.0 அங்கீகாரத்தைத் தீர்ப்பது
HMAC-SHA1 ஐப் பயன்படுத்தி ஸ்கலாவில் OAuth 1.0 கோரிக்கைகளை எவ்வாறு கையொப்பமிடுவது என்பதை இந்த ஸ்கிரிப்ட் காட்டுகிறது. இது மாடுலாரிட்டி மற்றும் பிழை கையாளுதலை உறுதி செய்கிறது, இதன் விளைவாக மீண்டும் பயன்படுத்தக்கூடிய, பராமரிக்கக்கூடிய குறியீடு.
import java.net.URLEncoder
import javax.crypto.Mac
import javax.crypto.spec.SecretKeySpec
import org.joda.time.DateTime
import sttp.client4._
import sttp.model.Header
import scala.util.Random
object Auth {
def urlEncode(text: String): String =
URLEncoder.encode(text, java.nio.charset.Charset.defaultCharset())
def generateNonce: String = Random.alphanumeric.take(15).mkString
def sha1sign(text: String, key: String): String = {
val mac = Mac.getInstance("HmacSHA1")
val signingKey = new SecretKeySpec(key.getBytes, "HmacSHA1")
mac.init(signingKey)
val signature = mac.doFinal(text.getBytes("UTF-8"))
java.util.Base64.getEncoder.encodeToString(signature)
}
def createHeader(authData: Map[String, String]): Header = {
val signatureBaseString = "POST&" + urlEncode("https://api.twitter.com/2/tweets") + "&" +
urlEncode(authData.toSeq.sorted.map(x => s"${x._1}=${x._2}").mkString("&"))
val signature = sha1sign(signatureBaseString, "consumerSecret&tokenSecret")
val authHeader = "OAuth " + authData.map { case (k, v) => s"""$k="${urlEncode(v)}"""" }.mkString(", ") +
s""", oauth_signature="${urlEncode(signature)}""""
Header("Authorization", authHeader)
}
}
object TwitterApi {
val postEndpoint = "https://api.twitter.com/2/tweets"
def createPost(text: String): Response = {
val authData = Map(
"oauth_consumer_key" -> "yourConsumerKey",
"oauth_nonce" -> Auth.generateNonce,
"oauth_signature_method" -> "HMAC-SHA1",
"oauth_timestamp" -> DateTime.now().getMillis.toString,
"oauth_token" -> "yourToken",
"oauth_version" -> "1.0"
)
val header = Auth.createHeader(authData)
basicRequest
.header(header)
.contentType("application/json")
.body(s"""{"text":"$text"}""")
.post(uri"$postEndpoint")
.send(backend)
}
}
மாற்று அணுகுமுறை: தனிப்பயன் அல்லாத மற்றும் நேர முத்திரை கையாளுதலுடன் OAuth 1.0
இந்த முறையானது, குறைந்தபட்ச சார்புகளுடன் பெஸ்போக் நான்ஸ்கள் மற்றும் நேர முத்திரைகளை உருவாக்குவதில் கவனம் செலுத்துவதன் மூலம் கையொப்ப செயல்முறையை ஒழுங்குபடுத்துகிறது.
import java.net.URLEncoder
import javax.crypto.Mac
import javax.crypto.spec.SecretKeySpec
import sttp.client4._
import sttp.model.Header
object OAuthHelper {
def generateTimestamp: String = (System.currentTimeMillis / 1000).toString
def generateNonce: String = java.util.UUID.randomUUID().toString.replace("-", "")
def urlEncode(value: String): String = URLEncoder.encode(value, "UTF-8")
def hmacSha1(baseString: String, key: String): String = {
val mac = Mac.getInstance("HmacSHA1")
val signingKey = new SecretKeySpec(key.getBytes("UTF-8"), "HmacSHA1")
mac.init(signingKey)
val rawHmac = mac.doFinal(baseString.getBytes("UTF-8"))
java.util.Base64.getEncoder.encodeToString(rawHmac)
}
}
object TwitterClient {
def createAuthorizationHeader(params: Map[String, String], signature: String): Header = {
val headerParams = params.map { case (k, v) => s"""$k="${OAuthHelper.urlEncode(v)}"""" }.mkString(", ")
Header("Authorization", s"""OAuth $headerParams, oauth_signature="$signature"""")
}
def postTweet(text: String): Response = {
val params = Map(
"oauth_consumer_key" -> "consumerKey",
"oauth_nonce" -> OAuthHelper.generateNonce,
"oauth_signature_method" -> "HMAC-SHA1",
"oauth_timestamp" -> OAuthHelper.generateTimestamp,
"oauth_token" -> "accessToken",
"oauth_version" -> "1.0"
)
val baseString = "POST&" + OAuthHelper.urlEncode("https://api.twitter.com/2/tweets") + "&" +
OAuthHelper.urlEncode(params.toSeq.sorted.map { case (k, v) => s"$k=$v" }.mkString("&"))
val signature = OAuthHelper.hmacSha1(baseString, "consumerSecret&tokenSecret")
val authHeader = createAuthorizationHeader(params, signature)
basicRequest
.header(authHeader)
.contentType("application/json")
.body(s"""{"text":"$text"}""")
.post(uri"https://api.twitter.com/2/tweets")
.send(backend)
}
}
ட்விட்டர் APIக்கான OAuth மற்றும் சிக்னேச்சர் ஜெனரேஷன் மாஸ்டரிங்
OAuth 1.0 என்பது பழையது ஆனால் இன்னும் அடிக்கடி பயன்படுத்தப்படும் அங்கீகார பொறிமுறையாகும், குறிப்பாக Twitter போன்ற APIகளுடன் தொடர்புகொள்வதற்காக, இப்போது X என அழைக்கப்படுகிறது. சரியான கையொப்பத்தை உருவாக்குவது OAuth 1.0 இன் முக்கிய அங்கமாகும். இந்த கையொப்பம் கோரிக்கைகளின் நியாயத்தன்மையை சரிபார்க்கிறது மற்றும் தீங்கிழைக்கும் சேதத்தைத் தடுக்கிறது. Twitter API க்கு தேவை HMAC-SHA1 கையெழுத்து. HTTP முறை, API எண்ட்பாயிண்ட் மற்றும் OAuth அளவுருக்கள் போன்ற முக்கியமான தரவுப் புள்ளிகளை உங்கள் நுகர்வோர் ரகசியம் மற்றும் டோக்கன் ரகசியம் அடங்கிய விசையுடன் கையொப்பமிடப்பட்ட ஒரு அடிப்படை சரமாக இணைப்பதை இந்த செயல்முறை உள்ளடக்குகிறது.
இருப்பினும், OAuth 1.0 வலுவான பாதுகாப்பை அளித்தாலும், அது சவால்கள் இல்லாமல் இல்லை. தவறான குறியாக்க அளவுருக்களால் ஒரு பொதுவான சிக்கல் எழுகிறது. குறிப்பாக, சிறப்பு எழுத்துகள் சரியாக குறியாக்கம் செய்யப்படாதபோது டெவலப்பர்கள் அடிக்கடி சிக்கலில் சிக்குவார்கள், இது அங்கீகார முயற்சிகள் தோல்வியடைய வழிவகுக்கும். முறை URLEncoder.encode இங்கே முக்கியமானது. "&", "=", மற்றும் "+" போன்ற எழுத்துக்கள் சரியாக கையாளப்படுவதை இது உறுதி செய்கிறது. இந்த குறியாக்கம் இல்லாமல், கையொப்பமும் கோரிக்கையும் எதிர்பார்த்த வடிவத்துடன் பொருந்தாததால், Twitter இன் API கோரிக்கையை நிராகரிக்கும்.
குறியாக்கச் சிக்கல்களைத் தவிர, அங்கீகாரத் தலைப்பை நிறுவுவதும் முக்கியமானது. OAuth நெறிமுறையானது தலைப்பில் இல்லாத, நேர முத்திரை மற்றும் கையொப்பம் ஆகியவற்றைக் கட்டாயப்படுத்துகிறது. கோரிக்கையைச் சமர்ப்பிப்பதற்கு முன் முக்கிய மதிப்பு ஜோடிகளின் வரைபடத்தை வரிசைப்படுத்தி மறுவடிவமைப்பதன் மூலம் இது நிறைவேற்றப்படுகிறது. இந்த எண்களின் வரிசை மற்றும் வடிவமைப்பு குறிப்பிடத்தக்கதாக இருக்கலாம், எனவே தரவை மறுவடிவமைக்கவும் வரிசைப்படுத்தவும் துணை செயல்பாடுகள் தேவை. இது சிக்கல்களின் அபாயத்தைக் குறைக்கிறது மற்றும் API உங்கள் கோரிக்கைகளைச் சரியாகச் செயல்படுத்துகிறது என்பதற்கு உத்தரவாதம் அளிக்கிறது.
OAuth 1.0 மற்றும் Twitter API அங்கீகாரம் பற்றி அடிக்கடி கேட்கப்படும் கேள்விகள்
- OAuth 2.0 இலிருந்து OAuth 1.0 எவ்வாறு வேறுபடுகிறது?
- OAuth 1.0 பாதுகாப்புக்காக கையொப்பங்கள் மற்றும் HMAC-SHA1 குறியாக்கத்தைப் பயன்படுத்துகிறது, அதேசமயம் OAuth 2.0 டோக்கன் அடிப்படையிலான அங்கீகாரத்தைப் பயன்படுத்துகிறது, இது செயல்முறையை எளிதாக்குகிறது, ஆனால் பாதுகாப்பான HTTPS இணைப்புகளை அவசியமாக்குகிறது.
- OAuth 1.0 இல் இல்லாததன் நோக்கம் என்ன?
- ரீப்ளே தாக்குதல்களைத் தடுக்க, ஒவ்வொரு கோரிக்கையும் நான்ஸ் எனப்படும் தனித்துவமான சரத்தை உருவாக்குகிறது. ஒவ்வொரு கோரிக்கையும் ஒரு முறை மட்டுமே செயல்படுத்தப்படுவதை இது உறுதி செய்கிறது. Scala நீங்கள் பயன்படுத்தாத ஒன்றை உருவாக்க அனுமதிக்கிறது Random.alphanumeric.take().
- OAuth கோரிக்கைகளில் URL குறியாக்கம் ஏன் அவசியம்?
- URL குறியாக்கம் மிகவும் முக்கியமானது, ஏனெனில் சில எழுத்துக்குறிகள் (&) அல்லது இடைவெளிகள் தவறான விளக்கத்தைத் தவிர்க்க குறியாக்கம் செய்யப்பட வேண்டும். பயன்படுத்தவும் URLEncoder.encode() இந்த எழுத்துக்களை பாதுகாப்பாக குறியாக்கம் செய்ய.
- OAuth கையொப்பத்தை எவ்வாறு உருவாக்குவது?
- OAuth கையொப்பத்தை நிறுவ, முதலில் கோரிக்கைத் தரவிலிருந்து ஒரு அடிப்படை சரத்தை உருவாக்கவும், பின்னர் அதை HMAC-SHA1 நுட்பத்துடன் கையொப்பமிடவும். பயன்படுத்தவும் Mac.getInstance("HmacSHA1") ஹாஷிங் செயல்முறையைத் தொடங்க.
- OAuth இல் 401 அங்கீகரிக்கப்படாத பிழையை என்ன ஏற்படுத்தலாம்?
- தவறான கையொப்பம், பொருந்தாத நுகர்வோர் விசைகள் அல்லது பொருத்தமற்ற அளவுரு குறியாக்கம் உள்ளிட்ட பல்வேறு பிழைகளால் 401 பிழை ஏற்படலாம். கையொப்பம் கோரிக்கைத் தரவுடன் பொருந்துகிறது என்பதையும் குறியாக்கம் துல்லியமானது என்பதையும் எப்போதும் உறுதிப்படுத்தவும்.
Twitter OAuth சிக்கல்களைத் தீர்ப்பதற்கான இறுதி எண்ணங்கள்
Twitter இன் APIக்கான OAuth 1.0 கோரிக்கையை சரியாக அங்கீகரிக்க, டெவலப்பர்கள் கையொப்பங்களையும் தலைப்புகளையும் கவனமாக நிர்வகிக்க வேண்டும். குறியாக்கச் சிக்கல்கள் அல்லது தவறான அடிப்படை சரம் வடிவமைப்பைப் பயன்படுத்துவதால் பல சிக்கல்கள் ஏற்படுகின்றன. "401 அங்கீகரிக்கப்படாதது" போன்ற பிழைகள் இந்தப் பிரச்சனைகளை சரியான முறையில் கையாள்வதன் மூலம் தடுக்கலாம்.
மேலும், உருவாக்கம், நேர முத்திரை துல்லியம் மற்றும் தலைப்பு வடிவமைப்பை மறுபரிசீலனை செய்வது அங்கீகார வெற்றியை பெரிதும் அதிகரிக்கிறது. sha1sign முறையை மேம்படுத்துதல், துல்லியமான கையொப்பக் கணக்கீட்டை உறுதி செய்தல் மற்றும் OAuth தேவைகளைப் பின்பற்றுதல் ஆகியவை செயல்பாட்டு மற்றும் தானியங்கு X வெளியீட்டு பயன்பாட்டை உருவாக்குவதற்கான முக்கியமான கட்டங்களாகும்.
Twitter API உடன் OAuth 1.0 ஒருங்கிணைப்புக்கான குறிப்புகள் மற்றும் ஆதாரங்கள்
- ட்விட்டருக்கான HMAC-SHA1 உடன் OAuth 1.0 ஐ செயல்படுத்துவது பற்றிய விரிவான வழிகாட்டி, கெவின் வில்லியம்ஸ் எழுதியது. இல் கிடைக்கும் நடுத்தர - கெவின் வில்லியம்ஸ் .
- ஸ்காலாவில் HMAC-SHA1 கையெழுத்து உருவாக்கம் பற்றிய சமூக விவாதம் மற்றும் நுண்ணறிவு, அரவிந்த்_ஜி. இல் கிடைக்கும் கேட்லிங் சமூகம் .
- Twitter API v2க்கான அதிகாரப்பூர்வ ஆவணங்கள், இறுதிப்புள்ளி விவரங்கள் மற்றும் அங்கீகாரத் தேவைகள் உட்பட. இல் கிடைக்கும் Twitter API ஆவணம் .