اذهب إلى المحتوى

السؤال

نشر

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

Recommended Posts

  • 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 %>

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...