الاستفادة من خدمات تقصير العناوين برمجيا – خدمة Tweetburner (twurl)

This article is available in English too, check it out here.

يمكنك قراءة المزيد عن خدمات تقصير العناوين هنا.

الاستفادة من خدمات تقصير العناوين برمجيا – خدمة Tweetburner (twurl)

المحتويات

محتويات هذا الموضوع:

  • المحتويات
  • نظرة خاطفة
  • مقدمة
  • شرح الخدمة
  • الواجهة البرمجية
  • ماذا بعد

نظرة خاطفة

اليوم نتكلم عن خدمة أخر لتقصير العناوين، ألا وهي Tweetburner أو twurl.

اليوم نقوم بشرح كامل لهذه الخدمة، وأيضا شرح كامل لكيفية برمجتها.

مقدمة

وهذه أيضا واحدة من الخدمات المتميزة جدا البسيطة وسهلة التعامل.

خدمة تويت برنر Tweetburner أو twurl هي أحد خدمات تقصير العناوين المتميزة جدا والتي يمكننا مقارنتها بخدمة is.gd من ناحية بساطة الواجهة وسهولة التعامل.

شرح الخدمة

عند زيارتك لموقع الخدمة لأول مرة (وذلك عن طريق الرابط http://tweetburner.com أو http://twurl.nl) ستجد أنك تستطيع التسجيل في الخدمة وذلك للحصول على تحليلات Analytics خاصة بالروابط (مثل عدد الضغطات ونحوها) ولكن لسوء الحظ فإن هذه التحليلات غير متوفرة في الوقت الحالي، لذلك فإنك لا تجني أي مميزات عند اشتراكك الآن.

من أهم مميزات Tweetburner أو twurl أنه يوفر لك طريقة لإرسال الروابط إلى تويتر (تخمين صحيح) و friendfeed مباشرة فور تقصيرها وذلك عن طريق الضغط على رابط المشاركة بعد التقصير، لاحظ شكل 1 وشكل 2.

شكل 1 - تقصير عنوان، تويت برنر
شكل 2 - المشاركة، تويت برنر

للأسف فإنك لا تستطيع الاستفادة من خدمة المشاركة برمجيا، لكن يمكنك القيام به يدويا، وهذا ما تجده في المثال.

بعد التقصير تحصل على رابط طوله 22 حرف يبتدئ بـ http://twurl.nl، وربما يأتي على بالك خدمة is.gd والتي توفر روابط طوله 18 حرف فقط!

الواجهة البرمجية

حقيقة، لا توفر لك خدمة Tweetburner أي واجهة برمجية، ولكنها توفر صفحة بسيطة خاصة بعملية التقصير يمكن استخدامها برمجيا، وهذه الصفحة هي http://tweetburner.com/links. ولهذا يمكننا القول بأن خدمة Tweetburner توفر واجهة برمجية بسيطة عن طريق صفحة ويب يمكن النداء عليها.

الآن، اذهب إلى دالتنا (عفوا، صفحتنا) http://tweetburner.com/links وقم بعمل تجربة لها عن طريق عمل تقصير لأي عنوان تريده، ولاحظ كيفية العمل.

شكل 3 - تقصير رابط برمجيا، تويت برنر

الآن، تابع معنا شرح كيفية برمجة هذه الصفحة هنا. ستجد أنه لاستخدام هذه الصفحة برمجيا سيتوجب علينا عمل نداء/طلب Request على هذه الصفحة باستخدام المدخلات التالية: link[url]={0} والتي نقوم فيها بتبديل الخانة الوحيدة فيها {0} بالعنوان المراد تقصيره، ثم بعد نجاح العملية نحصل على الرابط القصير.

غريب؟ كيف نفهم هذه الصفحة، أو كيف نفهم كيفية برمجتها؟ تابع معنا الخطوات التالية:

أولا، قم بحفظ الصفحة http://tweetburner.com/links بصيغة HTML وقم بفتحها في أي قارئ لملفات الـ HTML أو حتى في الـ Notepad.

تابع إلى السطر الخاص بتعريف مربع النص وهو التالي:

هنا نلاحظ أنه تم تسمية مربع النص باسم link[url] وهذا يفسر سبب أن عملية النداء على هذه الصفحة يجب أن تحوي المدخل الخاص بمربع النص. بعد ذلك تتم عملية التقصير وتحصل على الرابط القصير.

الآن ننتقل إلى الكود. الكود التالي يقوم بالنداء على الصفحة http://tweetburner.com/links وتحديد المدخلات الخاصة بها ألا وهي link[url]={0} مع ملاحظة تبديل {0} بالعنوان المراد تقصيره. (لاحظ أنك تحتاج إلى إضافة النطاق System.Net.)

// C#

string Short(string url)
{
    url = Uri.EscapeUriString(url);

    HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://tweetburner.com/links");
    req.Timeout = 5000;
    req.Method = "POST";
    req.ContentType = "application/x-www-form-urlencoded";

    byte[] buffer = System.Text.Encoding.UTF8.GetBytes("link[url]=" + url);
    req.ContentLength = buffer.Length;

    System.IO.Stream ios = req.GetRequestStream();
    ios.Write(buffer, 0, buffer.Length);

    try
    {

        using (System.IO.StreamReader reader =
            new System.IO.StreamReader(req.GetResponse().GetResponseStream()))
        {
            return reader.ReadLine();
        }
    }
    catch (WebException ex)
    {
        return ex.Message;
    }
}
' VB.NET

Function Shorten(ByVal url As String) As String
    url = Uri.EscapeUriString(url)

    Dim req As HttpWebRequest = _
        CType(WebRequest.Create("http://tweetburner.com/links"), HttpWebRequest)
    req.Timeout = 5000
    req.Method = "POST"
    req.ContentType = "application/x-www-form-urlencoded"

    Dim buffer() As Byte = _
        System.Text.Encoding.UTF8.GetBytes("link[url]=" + url)
    req.ContentLength = buffer.Length

    Dim ios As System.IO.Stream = req.GetRequestStream()
    ios.Write(buffer, 0, buffer.Length)

    Try
        Dim reader As System.IO.StreamReader = _
            New System.IO.StreamReader(req.GetResponse().GetResponseStream())

        Dim retValue As String = reader.ReadLine()

        reader.Close()

        Return retValue
    Catch ex As WebException
        Return ex.Message
    End Try
End Function

لاحظ في الكود السابق أننا قمنا باستخدام الطريقة POST على عكس كل مرة والتي نستخدم فيها GET. فـ POST تعني أن الكود الخاص بنا سيُحدِث تغييرا على الفورم، وليس فقط يقوم بجلب البيانات، وهذا ما يفعله الكود حقا. فالكود يقوم بكتابة الرابط المراد تقصيره في الحقل الخاص به برمجيا.

لاحظ أيضا أننا قمنا بتحديد نوع البيانات بـ application/x-www-form-urlencoded، وهي صالحة لجميع الفورم (نقصد بالفورم Form نماذج ملء البيانات الخاصة بمواقع الإنترنت.) ولأن الكود الخاص بنا لا يقوم بالنداء على دالة بل يقوم بملء نموذج البيانات فنحن نحتاج إلى تحديد نوع المدخلات أو البيانات التي سترسل إلى الصفحة.

أيضا قمنا بتحديد المدخلات وهي الرابط الذي سيتم كتابته في مربع النص link[url] وقمنا بكتابة المدخلات في محتوى الطلب (النداء.)

أخيرا، قمنا بتنفيذ الأمر والحصول على البيانات المرجوة.

ماذا بعد

أخيرا، ربما تحبون قراءة المزيد عن خدمات تقصير العناوين هنا.

اترك تعليقا