SlideShare a Scribd company logo
1 of 39
‫صالح الزٌد‬
‫مهندس برمجٌات‬
‫نقاط المحاضرة‬
         ‫ما هً خدمات الوٌب و لماذا؟‬       ‫‪‬‬
                     ‫أنواعها و تقنٌاتها‬   ‫‪‬‬
                 ‫كٌف ننشئ خدمة وٌب‬        ‫‪‬‬
    ‫الحماٌة فً االتصال بخدمات الوٌب‬       ‫‪‬‬
‫استعراض لخدمات وٌب فٌسبوك وتوٌتر‬          ‫‪‬‬
‫مقدمة عن خدمات الوٌب‬
‫ما هً خدمات الوٌب؟‬
              ‫خدمة أو مجموعة من الخدمات ٌقدمها موقع وٌب‬      ‫‪‬‬
  ‫ٌستطٌع أي موقع أو تطبٌق أخر االتصال بها و االستفادة منها‬   ‫‪‬‬
        ‫تعطً نتائج (ملفات) بصٌغ معٌنة مثل ‪ JSON‬و ‪XML‬‬         ‫‪‬‬
‫باالتصال عن طرٌق البروتوكوالت معروفة ومتداولة (‪)HTTP‬‬         ‫‪‬‬
                              ‫خطوة لتحوٌل موقع لتطبٌق وٌب‬    ‫‪‬‬
‫موقع ٌعرض جامعات ومعلومات الطالب فٌها‬

                                            ‫‪HTTP‬‬

                                                                ‫موقع أو تطبٌق‬
                           ‫أسماء الجامعات‬
                                               ‫‪JSON, XML‬‬




        ‫معلومات طالب‬                               ‫عدد الطالب فً جامعة‬




                            ‫صفحات الموقع‬
‫مواد الطالب فً فصل دراسً‬                     ‫أسماء الطالب فً جامعة‬


                              ‫‪API‬‬
‫لماذا خدمات الوٌب؟‬
               ‫‪ ‬تسهٌل الوصول للبٌانات‬
‫‪ ‬توفٌر جهد معالجة األوامر ووقت برمجتها‬
‫تقنٌات خدمات الوٌب‬
‫تقنٌات خدمات الوٌب‬
                SOAP (Simple Object Access Protocol)      
         WSDL (Web Services Description Language)         
UDDI (Universal Description, Discovery and Integration)   
                 REST (Representative State Transfer)     
‫‪REST‬‬
‫‪ ‬تعتمد على أوامر بروتوكول الـ ‪ HTTP‬االعتٌادٌة وهً:‬
                 ‫‪GET, POST, PUT, DELETE‬‬
      ‫‪ ‬تقوم باسترجاع صفحة بصٌغة ‪ JSON‬أو ‪XML‬‬
REST
 GET
  http://site.com/api/1.0/students/list?uni=ksu

GET /api/1.0/students/list?uni=ksu HTTP/1.1
Host: www.site.com
User-Agent: Mozilla/4.0

 POST
 http://site.com/api/1.0/students/list

POST /api/1.0/students/list HTTP/1.1
Host: www.site.com
User-Agent: Mozilla/4.0
uni=ksu
‫‪JSON‬‬
       ‫)‪JSON (JavaScript Object Notation‬‬                  ‫‪‬‬
‫صٌغة خاصة بالجافا سكربت لتمثٌل البٌانات و الـ ‪Objects‬‬     ‫‪‬‬
     ‫لها صٌغة خاصة فً تحوٌل نصوص الـ ‪Unicode‬‬              ‫‪‬‬
                                                  ‫مثال:‬   ‫‪‬‬
                          ‫كلمة ”الرٌاض“ بالعربٌة ستصبح‬
 ‫6360‪u0627u0644u0631u064au0627u‬‬
http://site.com/api/1.0/students/student_info?id=31219209

{
    "name": "Ahmed Abdullah",
    "age": 21,
    "uni": "King Saud University",
    "courses": [
                    {
                        "name": "Mathematical Equations",
                        "code": "MATH101",
                        "insturctor": "Yasir Saud"
                    },
                    {
                        "name": "Islamic Principles",
                        "code": "SLM101",
                        "insturctor": "Mohammad Khaled"
                    }
                 ]
}
JSON
  Object ‫ تستطٌع الجافاسكربت قراءة هذه البٌانات مباشرة و تحوٌلها إلى‬
                                                    eval ‫عبر الدالة‬
var obj = eval('(' + result + ')');
alert(obj.name);
alert(obj.age);
alert(obj.courses[0].name);
JSON
        json_decode ‫ عبر الدالة‬Object ‫ و تحوٌلها إلى‬PHP ‫ أو فً الـ‬
<?php
       $result = file_get_contents(
“http://site.com/api/1.0/students/student_info?id=31219209”);

          $obj = json_decode($result);
          echo $obj->name; //should print Ahmed Abdullah

?>
‫‪XML‬‬
            ‫‪XML (Extensible Markup Language) ‬‬
‫‪ ‬صٌغة عامة لتبادل البٌانات مدعومة فً لغات وبٌئات برمجٌة عدة‬
http://site.com/api/1.0/students/student_info?id=31219209

<?xml version="1.0"?>
<student_info>
    <name>Ahmed Abdullah</name>
    <age>21</age>
    <uni>King Saud University</uni>
    <courses>
       <course>
               <name>Mathematical Equations</name>
               <code>MATH101</code>
               <instructor>Yasir Saud</instructor>
       </course>
       <course>
               <name>Islamic Principles</name>
               <code>SLM101</code>
               <instructor>Mohammad Khaled</instructor>
       </course>
    </courses>
</student_info>
‫كٌف ننشئ خدمة وٌب؟‬
‫كٌف تنشئها؟‬
                             ‫‪ ‬قم بعمل مجلد خاص تحت عنوان موقعك‬
                                       ‫/0.1/‪http://site.com/api‬‬
‫‪ ‬قم بعمل ملف ‪ PHP‬لكل خدمة. نبدأ بواحدة (مثال سرد معلومات الطالب)‬
                                        ‫‪list_student_info.php‬‬
http://site.com/api/1.0/list_student_info.php?id=31219209

<?php
        $student_id = $_GET[“id”];
        …
        …
        //get required student info from DB
        //store it in an object or array $student_info
        $student_info->name = “Ahmed Abdullah”;
        $student_info->age = 21;
        …

        //or as array
        $student_info[“name”] = “Ahmed Abdullah”;
        $student_info[“age”] = 25;
        …

        //convert $student_info data to json

        $result = json_encode($student_info);
        echo $result;
?>
http://site.com/api/1.0/list_student_info.php?id=31219209

{
    "name": "Ahmed Abdullah",
    "age": 21,
    "uni": "King Saud University",
    "courses": [
                    {
                        "name": "Mathematical Equations",
                        "code": "MATH101",
                        "insturctor": "Yasir Saud"
                    },
                    {
                        "name": "Islamic Principles",
                        "code": "SLM101",
                        "insturctor": "Mohammad Khaled"
                    }
                 ]
}
‫ مرتب؟‬API ‫كٌف تجعل عنوان الـ‬
                                                           ‫ أي بدال من‬
          http://site.com/api/1.0/list_student_info.php?id=31219209
                                                                 ‫إلى‬
         http://site.com/api/1.0/students/student_info?id=31219209
          Apache Mod-Rewrite (htaccess redirect) ‫ باستخدام الـ‬

RewriteRule
^api/1.0/students/student_info$ /api/1.0/list_student_info.php [L]
‫ماذا عن تعدٌل بٌانات عن طرٌق خدمة الوٌب؟‬
‫‪ ‬ما قمنا باستعراضه هو جلب بٌانات فقط. ماذا عن تعدٌل بٌانات؟ (حذف,‬
                                                 ‫إضافة, تعدٌل)؟‬
                           ‫‪ ‬نفس الفكرة نقوم بعمل صفحات باسم مثال‬
                                    ‫‪add_new_student.php‬‬
                                 ‫‪update_student_info.php‬‬
                                  ‫‪delete_student_info.php‬‬
 ‫‪ ‬نقوم بإعطاء المعلومات الجدٌدة كنص ‪ JSON‬أو قٌم مباشرة إذا كانت‬
                                                 ‫المعلومات قلٌلة‬
‫إضافة معلومات جدٌدة‬
                                add_new_student.php :‫ مثال‬
http://site.com/api/1.0/students/add_new_student?data={"
name" : "Yazeed Saleh", "age“: 25, …. }

               ‫ و تقوم خدمة الوٌب باسترجاع إما نجاح العملٌة أو الرفض‬

{"result":"success"}

{"result":"fail",
 "reason":"You don’t have enough privileges"}
‫حماٌة المعلومات المتداولة بٌن‬
    ‫خدمة الوٌب والمتصل‬
‫حماٌة المعلومات المتداولة بٌن الخدمة والمتصل‬
                       ‫‪ ‬ماذا لو تطبيقك يتطلب اسم مستخدم وكلمة مرور؟‬
       ‫‪ ‬تزوٌد المتصل برقم سري لالتصال لكل متصل (‪)access token‬‬
‫ٌستخدمه بدال عن استخدام اسم المستخدم و كلمة المرور, وٌستطٌع تغٌٌره أي‬
                                                                 ‫وقت.‬


‫90291213=‪http://site.com/api/1.0/students/student_info?id‬‬
‫‪&access_token=b2Aqj1G91k2smMr6KAmB91a‬‬
‫حماٌة المعلومات المتداولة بٌن الخدمة والمتصل‬
‫‪ ‬ماذا لو تطبيقك يسمح أن يقوم مستخدم بالدخول على معلومات مستخدمين آخرين؟‬
    ‫‪ ‬تزوٌد المتصل برقم سري لكل مستخدم سمح للمتصل بالدخول لمعلوماته‬
                                         ‫(‪)user access token‬‬


‫291213=‪http://site.com/api/1.0/students/delete_student?id‬‬
‫‪09&access_token=b2Aqj1G91k2smMr6KAmB91a&user_a‬‬
‫‪ccess_token=u3ErJk8a93Mna1Lq4E‬‬

                              ‫‪ ‬هذه األسالٌب تعرف بما ٌسمى الـ ‪OAuth‬‬
                                   ‫أو الـ ‪Open Authentication‬‬
‫حماٌة المعلومات المتداولة بٌن الخدمة والمتصل‬
‫‪ ‬تظل المعلومات غٌر محمٌة بشكل كافً عبر االنترنت لذا ٌتم استخدام اتصال‬
           ‫مشفر ‪ HTTPS‬عادة فً خدمات الوٌب ذات البٌانات الحساسة‬
‫استعراض خدمات وٌب‬
   ‫فٌسبوك وتوٌتر‬
‫خدمات وٌب فٌسبوك‬
                https://graph.facebook.com ‫ متوفرة على العنوان‬
‫ مؤقت لساعتٌن‬access token ‫ فٌها شرح وافً لكل الخدمات المتوفرة مع‬
                             ‫ مثال: معلومات عامة عن حسابً فً فٌسبوك‬
                    https://graph.facebook.com/saleh.alzaid
{
    "id": "635286979",
    "name": "Saleh Al-Zaid",
    "first_name": "Saleh",
    "last_name": "Al-Zaid",
    "username": "saleh.alzaid",
    "gender": "male",
    "locale": "en_US"
}
Access Token ‫معلومات األصدقاء؟ تتطلب‬
 https://graph.facebook.com/saleh.alzaid/friends?access_
    token=2227470867|2.AQCFXJ32tkL5nfOr.3600.131031
    3600.0-635286979|pYLUc8sTmom0GsNu4tPs6MYj7IU
{
     "data": [
        { "name":   "Bander Alnogaithan", "id": "28969" },
        { "name":   "Abdulrahman Tarbzouni", "id": "701168" },
        { "name":   "Yamen S. Al-Hajjar", "id": "902805" },
        { "name":   "Dale D. Murphy", "id": "1408770" },
        { "name":   "Rashaad Balbale", "id": "1907343" },
        { "name":   "Fahad Albutairi", "id": "7918116" },
           ……
        ]
}
‫‪ Access Token‬غٌر منتهً؟‬
‫‪ ‬للحصول على ‪ access token‬غٌر منتهً غٌر محدد بفترة زمنٌة ٌجب أن‬
  ‫تقوم بإنشاء تطبٌق على الفٌسبوك ثم طلب ما ٌسمى بالـ ‪offilne access‬‬
<?php
        require("../src/facebook.php"); //facebook PHP API
        global $facebook;
        $facebook = new Facebook(
              array( 'appId' => 'your_app_id',
                     'secret' => 'your_app_secret_code‘
                   )
              );

        $par['req_perms'] = "offline_access";
        $loginUrl = $facebook->getLoginUrl($par);
        echo "loginUrl: $loginUrln";

        $session = $facebook->getSession();
        print_r($session);
?>
‫خدمات وٌب توٌتر‬
       ‫‪ ‬متوفرة على العنوان /‪http://api.twitter.com‬‬
           ‫‪ٌ ‬تطلب تسجٌل تطبٌق ومعلوماته قبل استخدامها‬
‫‪ ‬للحصول على ‪ٌ Access Token‬تم االتصال على الخدمة‬
 ‫‪http://api.twitter.com/oauth/request_token‬‬
          ‫و إعطاءها رقم تطبٌقك السري كمتغٌر ‪POST‬‬
‫مكتبات برمجٌة‬
‫‪ ‬فً الحقٌقة ال حاجة لمعرفة كافة خدمات الوٌب فً موقع معٌن إذا ما قام‬
     ‫بتقدٌم مكتبات برمجٌة تسهل عملٌة طلب الخدمة وإرسال واسترجاع‬
                                                       ‫المعلومات.‬
           ‫‪ ‬مكتبات برمجٌة لخدمات وٌب توٌتر لمعظم اللغات على الرابط‬
                      ‫‪http://dev.twitter.com/pages/libraries‬‬
‫شكرا لكم‬
   ‫‪‬‬
‫‪Q&A‬‬

More Related Content

What's hot

Your tuning arsenal: AWR, ADDM, ASH, Metrics and Advisors
Your tuning arsenal: AWR, ADDM, ASH, Metrics and AdvisorsYour tuning arsenal: AWR, ADDM, ASH, Metrics and Advisors
Your tuning arsenal: AWR, ADDM, ASH, Metrics and AdvisorsJohn Kanagaraj
 
Average Active Sessions RMOUG2007
Average Active Sessions RMOUG2007Average Active Sessions RMOUG2007
Average Active Sessions RMOUG2007John Beresniewicz
 
Re: ゼロから始める監視設計
Re: ゼロから始める監視設計Re: ゼロから始める監視設計
Re: ゼロから始める監視設計Masahito Zembutsu
 
GoldenGateテクニカルセミナー2「Oracle GoldenGate 新機能情報」(2016/5/11)
GoldenGateテクニカルセミナー2「Oracle GoldenGate 新機能情報」(2016/5/11)GoldenGateテクニカルセミナー2「Oracle GoldenGate 新機能情報」(2016/5/11)
GoldenGateテクニカルセミナー2「Oracle GoldenGate 新機能情報」(2016/5/11)オラクルエンジニア通信
 
aclpwn - Active Directory ACL exploitation with BloodHound
aclpwn - Active Directory ACL exploitation with BloodHoundaclpwn - Active Directory ACL exploitation with BloodHound
aclpwn - Active Directory ACL exploitation with BloodHoundDirkjanMollema
 
Day 1 Data Stage Administrator And Director 11.0
Day 1 Data Stage Administrator And Director 11.0Day 1 Data Stage Administrator And Director 11.0
Day 1 Data Stage Administrator And Director 11.0kshanmug2
 
gRPC 프레임워크를 만들며 알아보는 파이썬 - 파이콘2020
gRPC 프레임워크를 만들며 알아보는 파이썬  - 파이콘2020gRPC 프레임워크를 만들며 알아보는 파이썬  - 파이콘2020
gRPC 프레임워크를 만들며 알아보는 파이썬 - 파이콘2020재현 신
 
XXE: How to become a Jedi
XXE: How to become a JediXXE: How to become a Jedi
XXE: How to become a JediYaroslav Babin
 
2 TomcatによるWebアプリケーションサーバ構築 第2章 Tomcat概要(1)-アーキテクチャ、データソース
2 TomcatによるWebアプリケーションサーバ構築 第2章 Tomcat概要(1)-アーキテクチャ、データソース2 TomcatによるWebアプリケーションサーバ構築 第2章 Tomcat概要(1)-アーキテクチャ、データソース
2 TomcatによるWebアプリケーションサーバ構築 第2章 Tomcat概要(1)-アーキテクチャ、データソースEnpel
 
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門tsukasamannen
 
Average Active Sessions - OaktableWorld 2013
Average Active Sessions - OaktableWorld 2013Average Active Sessions - OaktableWorld 2013
Average Active Sessions - OaktableWorld 2013John Beresniewicz
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)NTT DATA Technology & Innovation
 
Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出
Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出
Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出Google Cloud Platform - Japan
 
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!Ryosuke Uchitate
 
35歳でDBAになった私がデータベースを壊して学んだこと
35歳でDBAになった私がデータベースを壊して学んだこと35歳でDBAになった私がデータベースを壊して学んだこと
35歳でDBAになった私がデータベースを壊して学んだことShinnosuke Akita
 
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本Takahiro YAMADA
 
Azure vm の可用性を見直そう
Azure vm の可用性を見直そうAzure vm の可用性を見直そう
Azure vm の可用性を見直そうShuheiUda
 

What's hot (20)

Salesforce 開発入門
Salesforce 開発入門Salesforce 開発入門
Salesforce 開発入門
 
Your tuning arsenal: AWR, ADDM, ASH, Metrics and Advisors
Your tuning arsenal: AWR, ADDM, ASH, Metrics and AdvisorsYour tuning arsenal: AWR, ADDM, ASH, Metrics and Advisors
Your tuning arsenal: AWR, ADDM, ASH, Metrics and Advisors
 
Average Active Sessions RMOUG2007
Average Active Sessions RMOUG2007Average Active Sessions RMOUG2007
Average Active Sessions RMOUG2007
 
Re: ゼロから始める監視設計
Re: ゼロから始める監視設計Re: ゼロから始める監視設計
Re: ゼロから始める監視設計
 
GoldenGateテクニカルセミナー2「Oracle GoldenGate 新機能情報」(2016/5/11)
GoldenGateテクニカルセミナー2「Oracle GoldenGate 新機能情報」(2016/5/11)GoldenGateテクニカルセミナー2「Oracle GoldenGate 新機能情報」(2016/5/11)
GoldenGateテクニカルセミナー2「Oracle GoldenGate 新機能情報」(2016/5/11)
 
aclpwn - Active Directory ACL exploitation with BloodHound
aclpwn - Active Directory ACL exploitation with BloodHoundaclpwn - Active Directory ACL exploitation with BloodHound
aclpwn - Active Directory ACL exploitation with BloodHound
 
Day 1 Data Stage Administrator And Director 11.0
Day 1 Data Stage Administrator And Director 11.0Day 1 Data Stage Administrator And Director 11.0
Day 1 Data Stage Administrator And Director 11.0
 
Google Cloud Dataflow を理解する - #bq_sushi
Google Cloud Dataflow を理解する - #bq_sushiGoogle Cloud Dataflow を理解する - #bq_sushi
Google Cloud Dataflow を理解する - #bq_sushi
 
gRPC 프레임워크를 만들며 알아보는 파이썬 - 파이콘2020
gRPC 프레임워크를 만들며 알아보는 파이썬  - 파이콘2020gRPC 프레임워크를 만들며 알아보는 파이썬  - 파이콘2020
gRPC 프레임워크를 만들며 알아보는 파이썬 - 파이콘2020
 
XXE: How to become a Jedi
XXE: How to become a JediXXE: How to become a Jedi
XXE: How to become a Jedi
 
2 TomcatによるWebアプリケーションサーバ構築 第2章 Tomcat概要(1)-アーキテクチャ、データソース
2 TomcatによるWebアプリケーションサーバ構築 第2章 Tomcat概要(1)-アーキテクチャ、データソース2 TomcatによるWebアプリケーションサーバ構築 第2章 Tomcat概要(1)-アーキテクチャ、データソース
2 TomcatによるWebアプリケーションサーバ構築 第2章 Tomcat概要(1)-アーキテクチャ、データソース
 
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門
 
Average Active Sessions - OaktableWorld 2013
Average Active Sessions - OaktableWorld 2013Average Active Sessions - OaktableWorld 2013
Average Active Sessions - OaktableWorld 2013
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
 
Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出
Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出
Google Cloud ベストプラクティス:Google BigQuery 編 - 02 : データ処理 / クエリ / データ抽出
 
SSO introduction
SSO introductionSSO introduction
SSO introduction
 
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
 
35歳でDBAになった私がデータベースを壊して学んだこと
35歳でDBAになった私がデータベースを壊して学んだこと35歳でDBAになった私がデータベースを壊して学んだこと
35歳でDBAになった私がデータベースを壊して学んだこと
 
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
 
Azure vm の可用性を見直そう
Azure vm の可用性を見直そうAzure vm の可用性を見直そう
Azure vm の可用性を見直そう
 

Viewers also liked

بناء تطبيقات ويب 2.0. دروس مستفادة و نصائح موجهة
 بناء تطبيقات ويب 2.0. دروس مستفادة و نصائح موجهة  بناء تطبيقات ويب 2.0. دروس مستفادة و نصائح موجهة
بناء تطبيقات ويب 2.0. دروس مستفادة و نصائح موجهة lunarhalo
 
مقدمة عن بايثون / جانقو
مقدمة عن بايثون / جانقومقدمة عن بايثون / جانقو
مقدمة عن بايثون / جانقوlunarhalo
 
رحلة في السيليكون فالي
رحلة في السيليكون فاليرحلة في السيليكون فالي
رحلة في السيليكون فاليlunarhalo
 
Webservice for android ppt
Webservice for android pptWebservice for android ppt
Webservice for android pptsantosh lamba
 
45 ما هي الويب سيرفس وكيفية تبادل البيانات بين الموبايل وقاعدة البيانات
45  ما هي الويب سيرفس وكيفية تبادل البيانات بين الموبايل وقاعدة البيانات 45  ما هي الويب سيرفس وكيفية تبادل البيانات بين الموبايل وقاعدة البيانات
45 ما هي الويب سيرفس وكيفية تبادل البيانات بين الموبايل وقاعدة البيانات رياض خليفة
 
Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP TutorialLorna Mitchell
 
[Android] Web services
[Android] Web services[Android] Web services
[Android] Web servicesNikmesoft Ltd
 
PHP Web service - وب سرویس
PHP Web service - وب سرویسPHP Web service - وب سرویس
PHP Web service - وب سرویسParsa Kafi
 
Connecting to Web Services on Android
Connecting to Web Services on AndroidConnecting to Web Services on Android
Connecting to Web Services on Androidsullis
 
Web Service Presentation
Web Service PresentationWeb Service Presentation
Web Service Presentationguest0df6b0
 
Getting Started with Web Services
Getting Started with Web ServicesGetting Started with Web Services
Getting Started with Web ServicesDataNext Solutions
 
Preparing your web services for Android and your Android app for web services...
Preparing your web services for Android and your Android app for web services...Preparing your web services for Android and your Android app for web services...
Preparing your web services for Android and your Android app for web services...Droidcon Eastern Europe
 
بناء خدمات ومشاريع الويب
بناء خدمات ومشاريع الويببناء خدمات ومشاريع الويب
بناء خدمات ومشاريع الويبlunarhalo
 
Grid computing , Utility computing الحوسبة الشبكية و الخدمية
Grid computing , Utility computing  الحوسبة الشبكية و الخدميةGrid computing , Utility computing  الحوسبة الشبكية و الخدمية
Grid computing , Utility computing الحوسبة الشبكية و الخدميةSally Jarkas
 
32- التعامل مع الأحداث - فون جاب
32- التعامل مع الأحداث - فون جاب32- التعامل مع الأحداث - فون جاب
32- التعامل مع الأحداث - فون جابرياض خليفة
 
PHP Advance 101 دورة
PHP Advance 101 دورة PHP Advance 101 دورة
PHP Advance 101 دورة anees abu-hmaid
 
Openerp 8
Openerp 8Openerp 8
Openerp 8smiste
 
باللغة العربية JSON دورة
  باللغة العربية JSON دورة   باللغة العربية JSON دورة
باللغة العربية JSON دورة anees abu-hmaid
 

Viewers also liked (20)

بناء تطبيقات ويب 2.0. دروس مستفادة و نصائح موجهة
 بناء تطبيقات ويب 2.0. دروس مستفادة و نصائح موجهة  بناء تطبيقات ويب 2.0. دروس مستفادة و نصائح موجهة
بناء تطبيقات ويب 2.0. دروس مستفادة و نصائح موجهة
 
مقدمة عن بايثون / جانقو
مقدمة عن بايثون / جانقومقدمة عن بايثون / جانقو
مقدمة عن بايثون / جانقو
 
رحلة في السيليكون فالي
رحلة في السيليكون فاليرحلة في السيليكون فالي
رحلة في السيليكون فالي
 
Webservice for android ppt
Webservice for android pptWebservice for android ppt
Webservice for android ppt
 
45 ما هي الويب سيرفس وكيفية تبادل البيانات بين الموبايل وقاعدة البيانات
45  ما هي الويب سيرفس وكيفية تبادل البيانات بين الموبايل وقاعدة البيانات 45  ما هي الويب سيرفس وكيفية تبادل البيانات بين الموبايل وقاعدة البيانات
45 ما هي الويب سيرفس وكيفية تبادل البيانات بين الموبايل وقاعدة البيانات
 
Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP Tutorial
 
[Android] Web services
[Android] Web services[Android] Web services
[Android] Web services
 
Introduction to web services
Introduction to web servicesIntroduction to web services
Introduction to web services
 
PHP Web service - وب سرویس
PHP Web service - وب سرویسPHP Web service - وب سرویس
PHP Web service - وب سرویس
 
Connecting to Web Services on Android
Connecting to Web Services on AndroidConnecting to Web Services on Android
Connecting to Web Services on Android
 
Web Service Presentation
Web Service PresentationWeb Service Presentation
Web Service Presentation
 
Getting Started with Web Services
Getting Started with Web ServicesGetting Started with Web Services
Getting Started with Web Services
 
Preparing your web services for Android and your Android app for web services...
Preparing your web services for Android and your Android app for web services...Preparing your web services for Android and your Android app for web services...
Preparing your web services for Android and your Android app for web services...
 
بناء خدمات ومشاريع الويب
بناء خدمات ومشاريع الويببناء خدمات ومشاريع الويب
بناء خدمات ومشاريع الويب
 
Grid computing , Utility computing الحوسبة الشبكية و الخدمية
Grid computing , Utility computing  الحوسبة الشبكية و الخدميةGrid computing , Utility computing  الحوسبة الشبكية و الخدمية
Grid computing , Utility computing الحوسبة الشبكية و الخدمية
 
الويب ديزاين
الويب ديزاينالويب ديزاين
الويب ديزاين
 
32- التعامل مع الأحداث - فون جاب
32- التعامل مع الأحداث - فون جاب32- التعامل مع الأحداث - فون جاب
32- التعامل مع الأحداث - فون جاب
 
PHP Advance 101 دورة
PHP Advance 101 دورة PHP Advance 101 دورة
PHP Advance 101 دورة
 
Openerp 8
Openerp 8Openerp 8
Openerp 8
 
باللغة العربية JSON دورة
  باللغة العربية JSON دورة   باللغة العربية JSON دورة
باللغة العربية JSON دورة
 

Similar to خدمات الويب (Web Services) و كيف تنشئها

أول كتاب لتطوير المنتديات
أول كتاب لتطوير المنتدياتأول كتاب لتطوير المنتديات
أول كتاب لتطوير المنتدياتguestf91808
 
Cloud Computing workshop
Cloud Computing workshopCloud Computing workshop
Cloud Computing workshopAbbas Badran
 
Métadonnées pédagogiques
Métadonnées pédagogiquesMétadonnées pédagogiques
Métadonnées pédagogiqueszghibi
 
Crossref LIVE Arabic
Crossref LIVE Arabic Crossref LIVE Arabic
Crossref LIVE Arabic Crossref
 
Getting Started with Content Registration - Arabic Webinar
Getting Started with Content Registration - Arabic Webinar Getting Started with Content Registration - Arabic Webinar
Getting Started with Content Registration - Arabic Webinar Crossref
 
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266جامعة القدس المفتوحة
 
الوحدة الثالثة - البحث عن المعلومات في الانترنت والمصادر الالكترونية -مهارات ...
الوحدة الثالثة - البحث عن المعلومات في الانترنت والمصادر الالكترونية -مهارات ...الوحدة الثالثة - البحث عن المعلومات في الانترنت والمصادر الالكترونية -مهارات ...
الوحدة الثالثة - البحث عن المعلومات في الانترنت والمصادر الالكترونية -مهارات ...Eyad Almasri
 
تسجيل المحتوي مع كروس رف – ندوة عبر الانترنت باللغة العربية | Content Registr...
تسجيل المحتوي مع كروس رف – ندوة عبر الانترنت باللغة العربية | Content Registr...تسجيل المحتوي مع كروس رف – ندوة عبر الانترنت باللغة العربية | Content Registr...
تسجيل المحتوي مع كروس رف – ندوة عبر الانترنت باللغة العربية | Content Registr...Crossref
 
Social Network Website 'Midterm Project'
Social Network Website 'Midterm Project'Social Network Website 'Midterm Project'
Social Network Website 'Midterm Project'Basel Issmail
 
الدرس الثالث عشر
الدرس الثالث عشرالدرس الثالث عشر
الدرس الثالث عشرAnas Aloklah
 
الدرس الخامس عشر
الدرس الخامس عشرالدرس الخامس عشر
الدرس الخامس عشرAnas Aloklah
 
تقرير رسمي لجامعة طنطا
تقرير رسمي لجامعة طنطاتقرير رسمي لجامعة طنطا
تقرير رسمي لجامعة طنطاdigital4itagency
 
منهاج بناء و تصميم مواقع الانترنيت
منهاج بناء و تصميم مواقع الانترنيتمنهاج بناء و تصميم مواقع الانترنيت
منهاج بناء و تصميم مواقع الانترنيتDrMohammed Qassim
 
Aws cloud services_malshreef_v1.0
Aws cloud services_malshreef_v1.0Aws cloud services_malshreef_v1.0
Aws cloud services_malshreef_v1.0Mohammed Alshareef
 
يوم البرمجيات الحرّة 2014 - البرمجيّات الحرّة و بناء واجهات التطبيق البرمجيّة...
يوم البرمجيات الحرّة 2014 - البرمجيّات الحرّة و بناء واجهات التطبيق البرمجيّة...يوم البرمجيات الحرّة 2014 - البرمجيّات الحرّة و بناء واجهات التطبيق البرمجيّة...
يوم البرمجيات الحرّة 2014 - البرمجيّات الحرّة و بناء واجهات التطبيق البرمجيّة...hossamzee
 

Similar to خدمات الويب (Web Services) و كيف تنشئها (16)

أول كتاب لتطوير المنتديات
أول كتاب لتطوير المنتدياتأول كتاب لتطوير المنتديات
أول كتاب لتطوير المنتديات
 
Cloud Computing workshop
Cloud Computing workshopCloud Computing workshop
Cloud Computing workshop
 
Métadonnées pédagogiques
Métadonnées pédagogiquesMétadonnées pédagogiques
Métadonnées pédagogiques
 
Crossref LIVE Arabic
Crossref LIVE Arabic Crossref LIVE Arabic
Crossref LIVE Arabic
 
Navigation
NavigationNavigation
Navigation
 
Getting Started with Content Registration - Arabic Webinar
Getting Started with Content Registration - Arabic Webinar Getting Started with Content Registration - Arabic Webinar
Getting Started with Content Registration - Arabic Webinar
 
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
 
الوحدة الثالثة - البحث عن المعلومات في الانترنت والمصادر الالكترونية -مهارات ...
الوحدة الثالثة - البحث عن المعلومات في الانترنت والمصادر الالكترونية -مهارات ...الوحدة الثالثة - البحث عن المعلومات في الانترنت والمصادر الالكترونية -مهارات ...
الوحدة الثالثة - البحث عن المعلومات في الانترنت والمصادر الالكترونية -مهارات ...
 
تسجيل المحتوي مع كروس رف – ندوة عبر الانترنت باللغة العربية | Content Registr...
تسجيل المحتوي مع كروس رف – ندوة عبر الانترنت باللغة العربية | Content Registr...تسجيل المحتوي مع كروس رف – ندوة عبر الانترنت باللغة العربية | Content Registr...
تسجيل المحتوي مع كروس رف – ندوة عبر الانترنت باللغة العربية | Content Registr...
 
Social Network Website 'Midterm Project'
Social Network Website 'Midterm Project'Social Network Website 'Midterm Project'
Social Network Website 'Midterm Project'
 
الدرس الثالث عشر
الدرس الثالث عشرالدرس الثالث عشر
الدرس الثالث عشر
 
الدرس الخامس عشر
الدرس الخامس عشرالدرس الخامس عشر
الدرس الخامس عشر
 
تقرير رسمي لجامعة طنطا
تقرير رسمي لجامعة طنطاتقرير رسمي لجامعة طنطا
تقرير رسمي لجامعة طنطا
 
منهاج بناء و تصميم مواقع الانترنيت
منهاج بناء و تصميم مواقع الانترنيتمنهاج بناء و تصميم مواقع الانترنيت
منهاج بناء و تصميم مواقع الانترنيت
 
Aws cloud services_malshreef_v1.0
Aws cloud services_malshreef_v1.0Aws cloud services_malshreef_v1.0
Aws cloud services_malshreef_v1.0
 
يوم البرمجيات الحرّة 2014 - البرمجيّات الحرّة و بناء واجهات التطبيق البرمجيّة...
يوم البرمجيات الحرّة 2014 - البرمجيّات الحرّة و بناء واجهات التطبيق البرمجيّة...يوم البرمجيات الحرّة 2014 - البرمجيّات الحرّة و بناء واجهات التطبيق البرمجيّة...
يوم البرمجيات الحرّة 2014 - البرمجيّات الحرّة و بناء واجهات التطبيق البرمجيّة...
 

خدمات الويب (Web Services) و كيف تنشئها

  • 2. ‫نقاط المحاضرة‬ ‫ما هً خدمات الوٌب و لماذا؟‬ ‫‪‬‬ ‫أنواعها و تقنٌاتها‬ ‫‪‬‬ ‫كٌف ننشئ خدمة وٌب‬ ‫‪‬‬ ‫الحماٌة فً االتصال بخدمات الوٌب‬ ‫‪‬‬ ‫استعراض لخدمات وٌب فٌسبوك وتوٌتر‬ ‫‪‬‬
  • 4. ‫ما هً خدمات الوٌب؟‬ ‫خدمة أو مجموعة من الخدمات ٌقدمها موقع وٌب‬ ‫‪‬‬ ‫ٌستطٌع أي موقع أو تطبٌق أخر االتصال بها و االستفادة منها‬ ‫‪‬‬ ‫تعطً نتائج (ملفات) بصٌغ معٌنة مثل ‪ JSON‬و ‪XML‬‬ ‫‪‬‬ ‫باالتصال عن طرٌق البروتوكوالت معروفة ومتداولة (‪)HTTP‬‬ ‫‪‬‬ ‫خطوة لتحوٌل موقع لتطبٌق وٌب‬ ‫‪‬‬
  • 5. ‫موقع ٌعرض جامعات ومعلومات الطالب فٌها‬ ‫‪HTTP‬‬ ‫موقع أو تطبٌق‬ ‫أسماء الجامعات‬ ‫‪JSON, XML‬‬ ‫معلومات طالب‬ ‫عدد الطالب فً جامعة‬ ‫صفحات الموقع‬ ‫مواد الطالب فً فصل دراسً‬ ‫أسماء الطالب فً جامعة‬ ‫‪API‬‬
  • 6. ‫لماذا خدمات الوٌب؟‬ ‫‪ ‬تسهٌل الوصول للبٌانات‬ ‫‪ ‬توفٌر جهد معالجة األوامر ووقت برمجتها‬
  • 8. ‫تقنٌات خدمات الوٌب‬ SOAP (Simple Object Access Protocol)  WSDL (Web Services Description Language)  UDDI (Universal Description, Discovery and Integration)  REST (Representative State Transfer) 
  • 9. ‫‪REST‬‬ ‫‪ ‬تعتمد على أوامر بروتوكول الـ ‪ HTTP‬االعتٌادٌة وهً:‬ ‫‪GET, POST, PUT, DELETE‬‬ ‫‪ ‬تقوم باسترجاع صفحة بصٌغة ‪ JSON‬أو ‪XML‬‬
  • 10. REST  GET http://site.com/api/1.0/students/list?uni=ksu GET /api/1.0/students/list?uni=ksu HTTP/1.1 Host: www.site.com User-Agent: Mozilla/4.0  POST http://site.com/api/1.0/students/list POST /api/1.0/students/list HTTP/1.1 Host: www.site.com User-Agent: Mozilla/4.0 uni=ksu
  • 11. ‫‪JSON‬‬ ‫)‪JSON (JavaScript Object Notation‬‬ ‫‪‬‬ ‫صٌغة خاصة بالجافا سكربت لتمثٌل البٌانات و الـ ‪Objects‬‬ ‫‪‬‬ ‫لها صٌغة خاصة فً تحوٌل نصوص الـ ‪Unicode‬‬ ‫‪‬‬ ‫مثال:‬ ‫‪‬‬ ‫كلمة ”الرٌاض“ بالعربٌة ستصبح‬ ‫6360‪u0627u0644u0631u064au0627u‬‬
  • 12. http://site.com/api/1.0/students/student_info?id=31219209 { "name": "Ahmed Abdullah", "age": 21, "uni": "King Saud University", "courses": [ { "name": "Mathematical Equations", "code": "MATH101", "insturctor": "Yasir Saud" }, { "name": "Islamic Principles", "code": "SLM101", "insturctor": "Mohammad Khaled" } ] }
  • 13. JSON Object ‫ تستطٌع الجافاسكربت قراءة هذه البٌانات مباشرة و تحوٌلها إلى‬ eval ‫عبر الدالة‬ var obj = eval('(' + result + ')'); alert(obj.name); alert(obj.age); alert(obj.courses[0].name);
  • 14. JSON json_decode ‫ عبر الدالة‬Object ‫ و تحوٌلها إلى‬PHP ‫ أو فً الـ‬ <?php $result = file_get_contents( “http://site.com/api/1.0/students/student_info?id=31219209”); $obj = json_decode($result); echo $obj->name; //should print Ahmed Abdullah ?>
  • 15. ‫‪XML‬‬ ‫‪XML (Extensible Markup Language) ‬‬ ‫‪ ‬صٌغة عامة لتبادل البٌانات مدعومة فً لغات وبٌئات برمجٌة عدة‬
  • 16. http://site.com/api/1.0/students/student_info?id=31219209 <?xml version="1.0"?> <student_info> <name>Ahmed Abdullah</name> <age>21</age> <uni>King Saud University</uni> <courses> <course> <name>Mathematical Equations</name> <code>MATH101</code> <instructor>Yasir Saud</instructor> </course> <course> <name>Islamic Principles</name> <code>SLM101</code> <instructor>Mohammad Khaled</instructor> </course> </courses> </student_info>
  • 18. ‫كٌف تنشئها؟‬ ‫‪ ‬قم بعمل مجلد خاص تحت عنوان موقعك‬ ‫/0.1/‪http://site.com/api‬‬ ‫‪ ‬قم بعمل ملف ‪ PHP‬لكل خدمة. نبدأ بواحدة (مثال سرد معلومات الطالب)‬ ‫‪list_student_info.php‬‬
  • 19. http://site.com/api/1.0/list_student_info.php?id=31219209 <?php $student_id = $_GET[“id”]; … … //get required student info from DB //store it in an object or array $student_info $student_info->name = “Ahmed Abdullah”; $student_info->age = 21; … //or as array $student_info[“name”] = “Ahmed Abdullah”; $student_info[“age”] = 25; … //convert $student_info data to json $result = json_encode($student_info); echo $result; ?>
  • 20. http://site.com/api/1.0/list_student_info.php?id=31219209 { "name": "Ahmed Abdullah", "age": 21, "uni": "King Saud University", "courses": [ { "name": "Mathematical Equations", "code": "MATH101", "insturctor": "Yasir Saud" }, { "name": "Islamic Principles", "code": "SLM101", "insturctor": "Mohammad Khaled" } ] }
  • 21. ‫ مرتب؟‬API ‫كٌف تجعل عنوان الـ‬ ‫ أي بدال من‬ http://site.com/api/1.0/list_student_info.php?id=31219209 ‫إلى‬ http://site.com/api/1.0/students/student_info?id=31219209 Apache Mod-Rewrite (htaccess redirect) ‫ باستخدام الـ‬ RewriteRule ^api/1.0/students/student_info$ /api/1.0/list_student_info.php [L]
  • 22. ‫ماذا عن تعدٌل بٌانات عن طرٌق خدمة الوٌب؟‬ ‫‪ ‬ما قمنا باستعراضه هو جلب بٌانات فقط. ماذا عن تعدٌل بٌانات؟ (حذف,‬ ‫إضافة, تعدٌل)؟‬ ‫‪ ‬نفس الفكرة نقوم بعمل صفحات باسم مثال‬ ‫‪add_new_student.php‬‬ ‫‪update_student_info.php‬‬ ‫‪delete_student_info.php‬‬ ‫‪ ‬نقوم بإعطاء المعلومات الجدٌدة كنص ‪ JSON‬أو قٌم مباشرة إذا كانت‬ ‫المعلومات قلٌلة‬
  • 23. ‫إضافة معلومات جدٌدة‬ add_new_student.php :‫ مثال‬ http://site.com/api/1.0/students/add_new_student?data={" name" : "Yazeed Saleh", "age“: 25, …. } ‫ و تقوم خدمة الوٌب باسترجاع إما نجاح العملٌة أو الرفض‬ {"result":"success"} {"result":"fail", "reason":"You don’t have enough privileges"}
  • 24. ‫حماٌة المعلومات المتداولة بٌن‬ ‫خدمة الوٌب والمتصل‬
  • 25. ‫حماٌة المعلومات المتداولة بٌن الخدمة والمتصل‬ ‫‪ ‬ماذا لو تطبيقك يتطلب اسم مستخدم وكلمة مرور؟‬ ‫‪ ‬تزوٌد المتصل برقم سري لالتصال لكل متصل (‪)access token‬‬ ‫ٌستخدمه بدال عن استخدام اسم المستخدم و كلمة المرور, وٌستطٌع تغٌٌره أي‬ ‫وقت.‬ ‫90291213=‪http://site.com/api/1.0/students/student_info?id‬‬ ‫‪&access_token=b2Aqj1G91k2smMr6KAmB91a‬‬
  • 26. ‫حماٌة المعلومات المتداولة بٌن الخدمة والمتصل‬ ‫‪ ‬ماذا لو تطبيقك يسمح أن يقوم مستخدم بالدخول على معلومات مستخدمين آخرين؟‬ ‫‪ ‬تزوٌد المتصل برقم سري لكل مستخدم سمح للمتصل بالدخول لمعلوماته‬ ‫(‪)user access token‬‬ ‫291213=‪http://site.com/api/1.0/students/delete_student?id‬‬ ‫‪09&access_token=b2Aqj1G91k2smMr6KAmB91a&user_a‬‬ ‫‪ccess_token=u3ErJk8a93Mna1Lq4E‬‬ ‫‪ ‬هذه األسالٌب تعرف بما ٌسمى الـ ‪OAuth‬‬ ‫أو الـ ‪Open Authentication‬‬
  • 27. ‫حماٌة المعلومات المتداولة بٌن الخدمة والمتصل‬ ‫‪ ‬تظل المعلومات غٌر محمٌة بشكل كافً عبر االنترنت لذا ٌتم استخدام اتصال‬ ‫مشفر ‪ HTTPS‬عادة فً خدمات الوٌب ذات البٌانات الحساسة‬
  • 28. ‫استعراض خدمات وٌب‬ ‫فٌسبوك وتوٌتر‬
  • 29. ‫خدمات وٌب فٌسبوك‬ https://graph.facebook.com ‫ متوفرة على العنوان‬ ‫ مؤقت لساعتٌن‬access token ‫ فٌها شرح وافً لكل الخدمات المتوفرة مع‬ ‫ مثال: معلومات عامة عن حسابً فً فٌسبوك‬ https://graph.facebook.com/saleh.alzaid { "id": "635286979", "name": "Saleh Al-Zaid", "first_name": "Saleh", "last_name": "Al-Zaid", "username": "saleh.alzaid", "gender": "male", "locale": "en_US" }
  • 30. Access Token ‫معلومات األصدقاء؟ تتطلب‬  https://graph.facebook.com/saleh.alzaid/friends?access_ token=2227470867|2.AQCFXJ32tkL5nfOr.3600.131031 3600.0-635286979|pYLUc8sTmom0GsNu4tPs6MYj7IU { "data": [ { "name": "Bander Alnogaithan", "id": "28969" }, { "name": "Abdulrahman Tarbzouni", "id": "701168" }, { "name": "Yamen S. Al-Hajjar", "id": "902805" }, { "name": "Dale D. Murphy", "id": "1408770" }, { "name": "Rashaad Balbale", "id": "1907343" }, { "name": "Fahad Albutairi", "id": "7918116" }, …… ] }
  • 31.
  • 32. ‫‪ Access Token‬غٌر منتهً؟‬ ‫‪ ‬للحصول على ‪ access token‬غٌر منتهً غٌر محدد بفترة زمنٌة ٌجب أن‬ ‫تقوم بإنشاء تطبٌق على الفٌسبوك ثم طلب ما ٌسمى بالـ ‪offilne access‬‬
  • 33.
  • 34. <?php require("../src/facebook.php"); //facebook PHP API global $facebook; $facebook = new Facebook( array( 'appId' => 'your_app_id', 'secret' => 'your_app_secret_code‘ ) ); $par['req_perms'] = "offline_access"; $loginUrl = $facebook->getLoginUrl($par); echo "loginUrl: $loginUrln"; $session = $facebook->getSession(); print_r($session); ?>
  • 35. ‫خدمات وٌب توٌتر‬ ‫‪ ‬متوفرة على العنوان /‪http://api.twitter.com‬‬ ‫‪ٌ ‬تطلب تسجٌل تطبٌق ومعلوماته قبل استخدامها‬ ‫‪ ‬للحصول على ‪ٌ Access Token‬تم االتصال على الخدمة‬ ‫‪http://api.twitter.com/oauth/request_token‬‬ ‫و إعطاءها رقم تطبٌقك السري كمتغٌر ‪POST‬‬
  • 36.
  • 37. ‫مكتبات برمجٌة‬ ‫‪ ‬فً الحقٌقة ال حاجة لمعرفة كافة خدمات الوٌب فً موقع معٌن إذا ما قام‬ ‫بتقدٌم مكتبات برمجٌة تسهل عملٌة طلب الخدمة وإرسال واسترجاع‬ ‫المعلومات.‬ ‫‪ ‬مكتبات برمجٌة لخدمات وٌب توٌتر لمعظم اللغات على الرابط‬ ‫‪http://dev.twitter.com/pages/libraries‬‬
  • 38.
  • 39. ‫شكرا لكم‬ ‫‪‬‬ ‫‪Q&A‬‬