'

Oauthоризация и API социальных сетЕЙ

Понравилась презентация – покажи это...





Слайд 0

Oauthоризация и API социальных сетЕЙ Артём Курапов


Слайд 1

Пузомерки Facebook – 500 млн (апрель 2010) Twitter – 145 млн (апрель 2010) Вконтакте – 91 млн (октябрь 2010) Linkedin – 75 млн (ноябрь 2010) Одноклассники – 45 млн (февраль 2010)


Слайд 2

От перехвата паролей и .. RSS?


Слайд 3

Решение – временные пароли Свет мой, зеркальце! скажи Ищем всех румяных, милых и белых Да, разрешаю


Слайд 4

Introducing.. Их две версии и разными фичами Oauth 1.0 reference (RFC5849) http://tools.ietf.org/html/rfc5849 Google, Yahoo, Яндекс тоже в теме Перед употреблением прочитать показания на упаковке или посоветоваться с аптекарем


Слайд 5

Форма следует за содержанием Абстрактная мысль №1 этого доклада


Слайд 6

Twitter OAuth 1.0 > https://github.com/abraham/twitteroauth > Redirect.php Consumer key + secret Access key + secret SHA1 + Base64


Слайд 7

Twitter — API объекты Statuses, Direct messages Users, Friends, Followers Lists, Subscribers Friendships Geo places Trends


Слайд 8

Twitter : новое приложение


Слайд 9

Схема Oauth


Слайд 10

Twitter - Псевдокод require_once('twitteroauth/twitteroauth.php'); require_once('twitter_oauth/config.php'); $connection = new TwitterOAuth( $aSyncAccount[‘consumer_key'], $aSyncAccount[‘consumer_secret'], $aSyncAccount[‘access_key'], $aSyncAccount[‘access_secret']); $user = $connection->get('account/verify_credentials'); $arrPosts = $connection->get('statuses/user_timeline');


Слайд 11

Twitter - впечатления Баг длиной ID в php (E14) Plaintext (в последний раз как я заглядывал)


Слайд 12

Вопросы? (Про twitter)


Слайд 13

Один из семи инструментов пропаганды Абстрактная мысль №2 этого доклада


Слайд 14

Facebook – объекты User (*), Page (*) Status Post Note Photo Video Link Album (Photos, Picture) Event (Feed, Users, Picture) Group (Feed, Members, Picture) Application Subscription Insights Checkin > Comments Likes < Friends


Слайд 15

Facebook – новое приложение Получаем Consumer key (App ID + secret) http://developers.facebook.com/setup/


Слайд 16

Facebook + серверное приложение Oauth 2.0 без подписей, но на SSL Перенаправляем с client_id, redirect_uri, scope = offline_access https://graph.facebook.com/oauth/authorize Пользователь подтверждает привилегии Возвращается с code параметром, обмениваем на access_key 134790075639751|ad22e11d67b06933774e26da-712393972|D8PoAPDdvv8onIAf_CasljjK7Pk


Слайд 17

Привилегии


Слайд 18

Facebook - Псевдокод if(!$token){     if($_REQUEST['code']){         $token = file_get_contents( 'https://graph.facebook.com/oauth/access_token?client_id='.CONSUMER_KEY.'&client_secret='.CONSUMER_SECRET.'&code='.$_REQUEST['code'].'&redirect_uri='.CONSUMER_URL);     }     else header('Location: https://graph.facebook.com/oauth/authorize?client_id='.CONSUMER_KEY.'&scope=offline_access,create_event,publish_stream,user_events&redirect_uri='.CONSUMER_URL); } Дальше можно использовать GraphAPI через PHP SDK или просто читать JSON https://github.com/facebook/php-sdk/


Слайд 19

Facebook + Javascript “GraphAPI” Javascript c FB глобальным объектом FB.init() FB.login() + FB.logout() FB.getLoginStatus() FB.api()


Слайд 20

Facebook — впечатления Пароли временные Нельзя прочитать друзей X пользователя без разрешения даже если пользователь разрешил видеть всем #604 error: Сan't lookup all friends of XXXXXX. Can only lookup for the logged in user (XXXXXX), or friends of the logged in user with the appropriate permission


Слайд 21

Вопросы? (Про facebook)


Слайд 22

У каждой веры своё отношение к клонам Абстрактная мысль №3 этого доклада


Слайд 23

Вконтакте - объекты Friends Wall Photos Audio, Video Places Offers Questions Notes Pages


Слайд 24

Вконтакте Новый «OpenAPI» (3.0), Iframe плюшки Javascript с глобальным VK объектом http://vkontakte.ru/js/api/openapi.js Авторизация на MD5 подписях для PHP/ActionScript


Слайд 25

Вконтакте - псевдокод // старый по логин-паролю $vkontakte = new vkuserapi ($aSyncAccount['login'], $aSyncAccount[‘password']); $vkontakte->call ('set_activity',array('ts'=>time(),'text'=> $strMessage)); // новая через ID приложения $VK = new vkapi($api_id, $secret_key); $resp = $VK->api('getProfiles', array('uids'=>'1, 2'));


Слайд 26

LinkedIN – объекты Person (Company, Education, Recommendation, Position) Connection Share Invitation


Слайд 27

LinkedIN OAuth 1.0 Можно убить access token Из объектов API – нет полноценных «компаний» но есть школы Есть JS Api как у Facebook + iframe плюшки


Слайд 28

LinkedIN – псевдокод c PEAR require_once 'HTTP/OAuth.php‘; require_once 'HTTP/OAuth/Consumer/Request.php'; require_once 'HTTP/Request2.php‘; require_once 'HTTP/OAuth/Consumer.php'; $oRequest = new HTTP_Request2; $oRequest->setHeader('Accept-Encoding', '.*'); $oRequest->setConfig('ssl_verify_peer', false); $oRequest->setConfig('ssl_verify_host', false); $oAuthRequest = new HTTP_OAuth_Consumer_Request; $oAuthRequest->accept($oRequest); $oConsumer = new HTTP_OAuth_Consumer( $aSyncAccount['consumer_key'], $aSyncAccount['consumer_secret'], $aSyncAccount['access_token'], $aSyncAccount['access_token_secret'] ); $oConsumer->accept($oAuthRequest); $oResponse = $consumer->sendRequest('http://api.linkedin.com/v1/people-search:(people:(id,first-name,last-name,headline,location,industry,distance,public-profile-url,picture-url,positions,educations),num-results)?keywords='. rawurlencode('Артём Курапов'), array(), 'GET'); $oXml = simplexml_load_string($oResponse->getBody());


Слайд 29

Одноклассники - объекты Users, Friends Photos Events Messages


Слайд 30

Одноклассники API появилась ~ в октябре 2010 ActionScript, JavaScript, REST API SSL auth.login + auth.loginByToken – цель не уловил


Слайд 31

Fin — а что такое OpenSocial?


×

HTML:





Ссылка: