معرفی
آیا می دانید گوگل برای جستجو در دیتابیس خود، دریافت نسخه cache شده یک وب سایت و همچنین استفاده از سرویس spelling check یک وب سرویس فراهم کرده است؟ استفاده از وب سرویس گوگل می تواند جستجوی گوگل را برای سایت شما فراهم کند. در اولین بخش این مقاله، ما به چگونگی استفاده از این وب سرویس برای جستجو در دیتابیس گوگل خواهیم پرداخت.
API وب سرویس گوگل
اطلاعات وب سرویس گوگل را می توانید در آدرس http://www.google.com/apis/ پیدا کنید. برای شروع استفاده از وب سرویس گوگل شما باید Google Web API Developer's Kit را دانلود کنید. این فایل 666 کیلو بایتی شامل فایل WSDL ( زبان توصیف وب سرویس) است که کاملا وب سرویس را توصیف می کند و نیز مثال هایی جهت دسترسی به این وب سرویس با زبان های جاوا، ویژوال بیسیک و سی شارپ دات نت دارد.
بعد از دانلود API Developer's Kit، شما باید یک اکانت در گوگل بسازید، این کار را می توانید از طریق آدرس زیر انجام دهید.https://www.google.com/accounts/NewAccount?continue=http://api.google.com/createkey&followup=http://api.google.com/createkey .
بعد از اینکه یکی از این اکانت های مجانی را ساختید. شما باید یک کلید لایسنس یکتا تعیین کنید. این کلید لایسنس باید هر دفعه که شما وب سرویس گوگل را فرامی خوانید استفاده شود. هدف این مجوز، محدود کردن درخواست وب سرویس ها به 1000 عدد در روز به ازای هر کلید لایسنس است.
ساختن کلاس پراکسی
بعد از اینکه کلید مجوز و کیت توسعه دهندگان را دریافت کردید، قدم بعدی ساخت یک کلاس پراکسی برای فراخوانی وب سرویس است. برای انجام این کار ما ابتدا به دستکاری در فایل WSDL نیاز داریم، این یک فایل به فرمت XML است که سرویس ارائه شده توسط وب سرویس گوگل را توصیف می کند. این فایل WSDL ، GoogleSearch.wsdl در کیت توسعه دهندگان مشخص شده است.
اگر از ویژوال استودیو دات نت استفاده می کنید، این فایل را در یک دایرکتوری ASP.NET ( مثلا C:InetpubwwwrootWebApplication1 ) کپی کنید. سپس در ویژوال استودیو به منوی Project بروید و گزینه Add Web Reference را انتخاب کنید. سپس در جعبه محاوره، آدرس فایل WSDL را وارد کنید، که چیزی شبیه به http://localhost/WebApplication1/GoogleSearch.wsdl خواهد بود . برای تکمیل عملیات روی دکمه Add Reference کلیک کنید. این کار یک کلاس پراکسی با استفاده از فضا نام localhost می سازد ( که در صورت تمایل می توانید آن را تغییر دهید).
اگر ویژوال استودیو دات نت ندارید، می توانید از طریق برنامه خط فرمان به نام wsdl.exe یک کلاس پراکسی بسازید. wsdl.exe یک فایل سی شارپ یا VB.NET می سازد که شما پس از آن احتیاج به کامپایل خواهید داشت. برای اجرای wsdl.exe در خط فرمان دستور زیر را وارد کنید:
wsdl /protocol:SOAP /namespace:google /out:GoogleProxy.cs C:googleGoogleSearch.wsdl
این کار یک فایل سی شارپ به نام GoogleProxy.cs با فضا نام google می سازد. برای کامپایل این کلاس از کامپایلر خط فرمانی سی شارپ یعنی csc به صورت زیر استفاده کنید:
csc /t:library /out:GoogleProxy.dll GoogleProxy.cs
این کار برای شما یک فایل به نام GoogleProxy.dll می سازد . مطمئن شوید که یک کپی از این فایل در دایرکتوری bin برنامه وبی شما باشد!
ساخت یک صفحه وبی ASP.NET برای فراخوانی وب سرویس گوگل
حالا که کلاس پراکسی را ساخته ایم، فراخوانی وب سرویس گوگل از طریق یک صفحه وب کار آسانی است. قبل از امتحان کردن این کار باید پارامترهایی که متدهای وب سرویس انتظارشان را دارند بشناسیم. خوشبختانه این متدها و پارامترهای ورودی شان در بخش مرجع در وب سایت گوگل کاملا معرفی شده اند. چون در این مقاله ما روی استفاده از متدهای جستجو تمرکز کرده ایم اجازه بدهید تا پارامتر های متد doGoogleSearch را با هم بررسی کنیم. این متد 10 پارامتر ورودی دارد:
|
متد doGoogleSearch نمونه ای از شی GoogleSearchResult را برمی گرداند. این شی یک مشخصه به نام resultElements دارد که آرایه ای از اشیا موسوم به ResultElement می باشد. شی ResultElement تعدادی مشخصه دارد، مثل عنوان، آدرس، خلاصه و چیزهایی از این دست.
حالا اجازه بدهید که یک صفحه ASP.NET ساده بسازیم تا 10 نتیجه اول را برای پرس و جوی عبارت "ASP" برگرداند. این کار را به کمک کد زیر می توان انجام داد:
<script language="VB" runat="server">
Sub Page_Load(sender as Object, e as EventArgs)
Dim search As google.GoogleSearchService = New google.GoogleSearchService()
Dim result as google.GoogleSearchResult
result = search.doGoogleSearch("license key...", "ASP", _
0, 10, True, "", True, "", "", "")
dlResults.DataSource = result.resultElements
dlResults.DataBind()
End Sub
</script>
<asp:DataList runat="server" id="dlResults"
Font-Name="Verdana" Font-Size="10pt">
<ItemTemplate>
<span style="font-size:15pt;font-weight:bold;">
<%# Container.DataItem.title %>
</span><br />
<%# Container.DataItem.summary %><br />
[<a href="<%# Container.DataItem.URL %>">
<%# Container.DataItem.URL %>
</a>]
</ItemTemplate>
<SeparatorTemplate>
<p>آ </p>
</SeparatorTemplate>
</asp:DataList> |
در قسمت دوم این مقاله خواهیم دید که چگونه یک صفحه ASP.NET مفیدتر که از وب سرویس گوگل استفاده می کند بنویسیم.



آذر 1387
