Миша Рудрастых: Введение в http api wordpress
TRANSCRIPT
![Page 1: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/1.jpg)
HTTP API
![Page 2: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/2.jpg)
Ваш сервер
Другой сервер
![Page 3: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/3.jpg)
Ваш сервер
![Page 4: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/4.jpg)
Не всегда вам помогут готовые плагины WordPress
![Page 5: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/5.jpg)
api.fixer.io/latest
![Page 6: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/6.jpg)
![Page 7: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/7.jpg)
![Page 8: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/8.jpg)
wp_remote_get()
![Page 9: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/9.jpg)
$r = wp_remote_get('http://api.fixer.io/latest');
print_r( $r );
![Page 10: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/10.jpg)
![Page 11: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/11.jpg)
![Page 12: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/12.jpg)
$r = wp_remote_get( 'http://api.fixer.io/latest' );
echo $r['body'];
![Page 13: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/13.jpg)
$r = wp_remote_get( 'http://api.fixer.io/latest' );
echo wp_remote_retrieve_body( $r );
![Page 14: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/14.jpg)
{"base":"EUR","date":"2017-10-09","rates":{"AUD":1.5142,"BGN":1.9558,"BRL":
3.7168,"CAD":1.4731,"CHF":1.1497,"CNY":7.7788,"CZK":25.893,"DKK":7.443,"GBP":
0.89195,"HKD":9.1685,"HRK":7.5025,"HUF":312.32,"IDR":15897.0,"ILS":4.1206,"INR":76.762,"JPY":132.36,"KRW":1343.1,"MXN":21.884,"MYR":4.9709,"NOK":9.3788,"NZD":1.6588,"PHP":60.189,"PLN":4.3077,"RON":4.5754,"RUB":68.538,"SEK":9.5348,"SGD":1.6013,"THB":39.214,"TRY":4.3636,"USD":
1.1746,"ZAR":16.199}}
![Page 15: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/15.jpg)
$r = wp_remote_get( 'http://api.fixer.io/latest' ); $body = json_decode( wp_remote_retrieve_body( $r ) ); echo $body->rates->USD;
![Page 16: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/16.jpg)
![Page 17: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/17.jpg)
Не всегда получится работать с API без
авторизации
![Page 18: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/18.jpg)
Access Token
1. Отправиться на instagram.com/developer и создать приложение
2. Используя Client ID и Client Secret и какой-нибудь инструмент, например https://rudrastyh.com/tools/access-token, создать Access Token
![Page 19: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/19.jpg)
Следующий универсальный шаг - работа с
документацией к API
https://www.instagram.com/developer/endpoints
![Page 20: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/20.jpg)
www.instagram.com/developer/endpoints
Мы можем смело использовать любые из них, которые не требуют scope
![Page 21: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/21.jpg)
www.instagram.com/developer/endpoints
Мы можем смело использовать любые из них, которые не требуют scope
![Page 22: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/22.jpg)
www.instagram.com/developer/endpoints
![Page 23: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/23.jpg)
![Page 24: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/24.jpg)
$me = wp_remote_get('https://api.instagram.com/v1/users/self/?access_token=ACCESS-TOKEN');
$body = json_decode( wp_remote_retrieve_body( $me ) );
// документация либо print_r() помогут узнать все параметры
echo '<img src="' . $body->data->profile_picture . '" />';
![Page 25: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/25.jpg)
$me = wp_remote_get('https://api.instagram.com/v1/users/self/?access_token=ACCESS-TOKEN');
$body = json_decode( wp_remote_retrieve_body( $me ) );
if( wp_remote_retrieve_response_code( $me ) == 200 ): echo '<img src="' . $body->data->profile_picture . '" />'; else: echo 'Что-то пошло не так'; endif;
![Page 26: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/26.jpg)
Транзиты
![Page 27: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/27.jpg)
get_transient() set_transient()
![Page 28: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/28.jpg)
if( false == $img = get_transient( 'privet_meetup' ) ) {
$me = wp_remote_get('https://api.instagram.com/v1/users/self/?access_token=ACCESS-TOKEN');
$body = json_decode( wp_remote_retrieve_body( $me ) );
$img = $body->data->profile_picture;
set_transient( 'privet_meetup', $img, 60 );
}
echo '<img src="' . $img . '" />';
![Page 29: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/29.jpg)
wp_remote_post()
![Page 30: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/30.jpg)
![Page 31: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/31.jpg)
![Page 32: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/32.jpg)
Basic Аутентификация
![Page 33: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/33.jpg)
$api_key = 'КЛЮЧ API'; $email = 'Емайл'; $args = array( 'method' => 'PUT', 'headers' => array( 'Authorization' => 'Basic ' . base64_encode( 'user:' . $api_key ) ), 'body' => json_encode( array( 'email_address' => $email, 'status' => 'subscribed' ) ) );
$response = wp_remote_post( 'https://' . substr( $api_key,strpos( $api_key,'-')+1) . '.api.mailchimp.com/3.0/lists/ID_листа/members/' . md5( strtolower( $email ) ), $args ); $body = json_decode( wp_remote_retrieve_body( $response ) ); if ( $body->status == 'subscribed' ) { echo 'Подписка оформлена успешно.'; }
![Page 34: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/34.jpg)
![Page 35: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/35.jpg)
$api_key = 'КЛЮЧ API'; $email = 'Емайл'; $args = array( 'method' => 'PUT', 'headers' => array( 'Authorization' => 'Basic ' . base64_encode( 'user:' . $api_key ) ), 'body' => json_encode( array( 'email_address' => $email, 'status' => 'subscribed' ) ) );
$response = wp_remote_post( 'https://' . substr( $api_key,strpos( $api_key,'-')+1) . '.api.mailchimp.com/3.0/lists/ID_листа/members/' . md5( strtolower( $email ) ), $args ); $body = json_decode( wp_remote_retrieve_body( $response ) ); if ( $body->status == 'subscribed' ) { echo 'Подписка оформлена успешно.'; }
![Page 36: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/36.jpg)
us8.api.mailchimp.com/3.0/ us10.api.mailchimp.com/3.0/
substr( $api_key,strpos( $api_key,'-')+1) . '.api.mailchimp.com/3.0/
![Page 37: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/37.jpg)
Thanks for listening
Any questions?
![Page 38: Миша Рудрастых: Введение в HTTP API WordPress](https://reader031.vdocuments.net/reader031/viewer/2022020314/5a6669477f8b9a5d3d8b4b05/html5/thumbnails/38.jpg)
vk.com/truemisha