• 0

كيف أختصر الروابط بالاعتماد على خدمة bitly في تطبيق Ruby On Rails؟

أريد أن أقدّم خدمة لتقصير الرّوابط في تطبيق ريلز الخاص بي، لكنّني لا أريد أن أبرمج نظام تقصير روابط من الصّفر. فهل من طريقة للاعتماد على API الخاصة بالموقع الشّهير Bitly لكي أقوم بتقصير الرّوابط؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يُمكنك بالفعل أن تعتمد على خدمة Bitly لتقصير الرّوابط، وذلك بالاستعانة بالـAPI الخاص بهم بالإضافة إلى جوهرة bitly، ولكنّك ستحتاج إلى التّسجيل في الموقع أولا للحصول على مفتاح الـAPI الخاصّ بك (ستحتاج إلى هذا المفتاح في تطبيق Rails).
إليك خطوات القيام بالأمر.
قم بالتّسجيل على الموقع من هذا الرّابط. ثمّ احصل على مفتاحك من هذه الصفحة.

قم بتنصيب الجوهرة على جهازك:

gem install bitly

استدع الجوهرة في ملف Gemfile:

gem 'bitly', '~> 0.10.4'

ثمّ قم بإنشاء المُتحكم urls :

rails g controller urls new create

اضبط الموجّهات كالتّالي:

BitlyExample::Application.routes.draw do
  resources :urls, only [:new, :create]
  root to: 'urls#new'
end

أنشئ ملفّا باسم bitly.rb على مجلّد config وضع به التّالي:

Bitly.configure do |config|
  config.api_version = 3
  config.login = "USERNAME"
  config.api_key = "API_KEY"
end

مع تغيير  USERNAME ليوافق اسم المُستخدم الخاص بك على موقع Bitly.
واستبدال API_KEY  بمفتاح الـAPI الخاص بك.

الآن تستطيع أن تعدّل ملف urls_controller.rb المتحكم لكي تستطيع إنشاء روابط مختصرة من عوامل Http وذلك عبر صفحات العرض views كالآتي:

class UrlsController < ApplicationController
  def new
  end

  def create
    if !params[:url].blank?
      client = Bitly.client
      @url = client.shorten(params[:url])
    end
  end
end

بعد ذلك، ضع في ملف new.html.erb الشيفرة التّالية لإنشاء نموذج للحصول على عناوين Url لاختصارها:

<h1>Create a new Bit.ly URL:</h1>

<%= form_for "", url: urls_path, method: :post do |f| %>
 <%= f.label :url %>
 <%= f.text_field :url %>
 <%= f.submit "Create Url" %>
<% end %>

أمّا في ملف create.html.erb فيمكنك تقديم الرّابط المُختصر للمُستخدم:

<h1>Your url for <%= @url.long_url %> is: </h1>
<%= link_to @url.short_url, @url.short_url, target: "_blank" %><br /><br />
<%= link_to "Create another Url", root_path %>

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن