در این مقاله نشان می دهیم که چگونه در ASP.Net ورود به سایت را با LinkedIn API ادغام کرده و به کاربر اجازه دهیم که با استفاده از اکانت LinkedIn خود وارد سایت شده و جزئیات پروفایل خود مانند ID، نام، عکس پروفایل، آدرس ایمیل و… را با استفاده از ASPSnippets.LinkedInAPI واکشی نماید.
LinkedIn API
همچنین این مقاله نشان می دهد که چگونه می توانیم در سایت LinkedIn Developers یک اپلیکیشن LinkedIn ایجاد کرده و LinkedIn Key و Secret Key را دریافت نماییم.
دریافت LinkedIn Key و Secret Key در سایت LinkedIn Developer:
برای ایجاد اپلیکیشن باید به آدرس زیر مراجعه نماییم:
https://www.linkedin.com/secure/developer
و در این صفحه، روی Add New Application کلیک می کنیم.
پس از آن، باید فرم زیر را پر کنیم، Default Scope مهم ترین قسمت است که مشخص می کنیم کدام جزئیات کاربران را می خواهیم در اپلیکیشن خود واکشی نماییم.
زمانی که فرم خود را تائید نمایید، LinkedIn API Key و Secret Key را همانطور که در شکل زیر مشاهده می نمایید، دریافت خواهید کرد:
دانلود و reference دادن به ASPSnippets LinkedIn API:
این dll به همراه سورس در انتهای مطلب برای دانلود قرار داده شده است.
همچنین با استفاده از Add Reference و یا کپی آن را به فولدر BINوب سایت خود اضافه می کنیم.
بخش HTML:
در بخش طراحی، یک Button داریم که فرایند LinkedIn Authorization را trigger می کند. زمانی که جزئیات پروفایل کاربر واکشی می شوند، با استفاده از کنترل های lable و Image نمایش داده می شوند.
<asp:ButtonText="ورودبهسایت"runat="server"OnClick="Authorize"/> <asp:PanelID="pnlDetails"runat="server"Visible="false"> <hr/> <asp:ImageID="imgPicture"runat="server"/> <br/> <tableclass="auto-style1"dir="rtl"> <tr> <tdclass="auto-style2">نام:</td> <td> <asp:LabelID="lblName"runat="server"/> </td> </tr> <tr> <tdclass="auto-style3">LinkedIn ID:</td> <tdclass="auto-style4"> <asp:LabelID="lblLinkedInId"runat="server"/> </td> </tr> <tr> <tdclass="auto-style3">آدرس:</td> <tdclass="auto-style4"> <asp:LabelID="lblLocation"runat="server"/> </td> </tr> <tr> <tdclass="auto-style2">آدرسایمیل:</td> <td> <asp:LabelID="lblEmailAddress"runat="server"/> </td> </tr> <tr> <tdclass="auto-style2">شغل:</td> <td> <asp:LabelID="lblIndustry"runat="server"/> </td> </tr> </table> <br/> </asp:Panel>
فضاهای نام:
فضاهای نام زیر را باید به پروژه خود اضافه کنیم:
کد C#:
using System.Data; using ASPSnippets.LinkedInAPI;
کد VB.Net:
Imports System.Data Imports ASPSnippets.LinkedInAPI
مجوزهای دسترسی LinkedIn و واکشی جزئیات پروفایل کاربر:
اولین کاری که باید انجام بدهیم، قرار دادن LinkedIn API Key و Secret Key در Property های متناظرشان است.
در رویداد کلیک Button، متد Authorize فراخوانی می شود که کاربر را به سایت LinkedIn هدایت می کند، کاربر وارد شده و مجوزهای لازم برای واکشی جزئیات پروفایل خود را به اپلیکیشن می دهد.
زمانی که کاربر مجوزهای دسترسی را مشخص کرد، جزئیات پروفایل با استفاده از متد Fetch به صورت یک شی DataSet واکشی شده و با استفاده از کنترل های Image و Lable نمایش داده می شود.
کد C#:
protected void Page_Load(object sender, EventArgs e) { LinkedInConnect.APIKey = "<Your LinkedIn API Key>"; LinkedInConnect.APISecret = "<Your LinkedIn API Secret>"; LinkedInConnect.RedirectUrl = Request.Url.AbsoluteUri.Split('?')[0]; if (LinkedInConnect.IsAuthorized) { pnlDetails.Visible = true; DataSet ds = LinkedInConnect.Fetch(); imgPicture.ImageUrl = ds.Tables["person"].Rows[0]["picture-url"].ToString(); lblName.Text = ds.Tables["person"].Rows[0]["first-name"].ToString(); lblName.Text += " " + ds.Tables["person"].Rows[0]["last-name"].ToString(); lblEmailAddress.Text = ds.Tables["person"].Rows[0]["email-address"].ToString(); lblIndustry.Text = ds.Tables["person"].Rows[0]["industry"].ToString(); lblLinkedInId.Text = ds.Tables["person"].Rows[0]["id"].ToString(); lblLocation.Text = ds.Tables["location"].Rows[0]["name"].ToString(); imgPicture.ImageUrl = ds.Tables["person"].Rows[0]["picture-url"].ToString(); } } protected void Authorize(object sender, EventArgs e) { LinkedInConnect.Authorize(); }
کد VB.Net:
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load LinkedInConnect.APIKey = "<Your LinkedIn API Key>" LinkedInConnect.APISecret = "<Your LinkedIn API Secret>" LinkedInConnect.RedirectUrl = Request.Url.AbsoluteUri.Split("?")(0) If LinkedInConnect.IsAuthorized Then pnlDetails.Visible = True Dim ds As DataSet = LinkedInConnect.Fetch() imgPicture.ImageUrl = ds.Tables("person").Rows(0)("picture-url").ToString() lblName.Text = ds.Tables("person").Rows(0)("first-name").ToString() lblName.Text += " " + ds.Tables("person").Rows(0)("last-name").ToString() lblEmailAddress.Text = ds.Tables("person").Rows(0)("email-address").ToString() lblIndustry.Text = ds.Tables("person").Rows(0)("industry").ToString() lblLinkedInId.Text = ds.Tables("person").Rows(0)("id").ToString() lblLocation.Text = ds.Tables("location").Rows(0)("name").ToString() imgPicture.ImageUrl = ds.Tables("person").Rows(0)("picture-url").ToString() End If End Sub Protected Sub Authorize(sender As Object, e As EventArgs) LinkedInConnect.Authorize() End Sub
مثل همیشه خوب ممنون
۹