1 / 32

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

Артём Курапов. O auth оризация и API социальн ы х сетЕЙ. Пузомерки. Facebook – 500 млн ( апрель 2010 ) Twitter – 145 млн ( апрель 2010 ) Вконтакте – 91 млн (октябрь 2010) Linkedin – 75 млн (ноябрь 2010) Одноклассники – 45 млн (февраль 2010). От перехвата паролей и .. RSS ?.

hailey
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

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

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

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

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

  10. Схема Oauth

  11. 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');

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

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

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

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

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

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

  18. Привилегии

  19. 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/

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

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

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

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

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

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

  26. Вконтакте - псевдокод // старый по логин-паролю $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'));

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

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

  29. 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());

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

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

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

More Related