Миша Рудрастых: Введение в http api wordpress

38
HTTP API

Upload: ruslan-begaliev

Post on 23-Jan-2018

47 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Миша Рудрастых: Введение в HTTP API WordPress

HTTP API

Page 2: Миша Рудрастых: Введение в HTTP API WordPress

Ваш сервер

Другой сервер

Page 3: Миша Рудрастых: Введение в HTTP API WordPress

Ваш сервер

Page 4: Миша Рудрастых: Введение в HTTP API WordPress

Не всегда вам помогут готовые плагины WordPress

Page 5: Миша Рудрастых: Введение в HTTP API WordPress

api.fixer.io/latest

Page 6: Миша Рудрастых: Введение в HTTP API WordPress
Page 7: Миша Рудрастых: Введение в HTTP API WordPress
Page 8: Миша Рудрастых: Введение в HTTP API WordPress

wp_remote_get()

Page 9: Миша Рудрастых: Введение в HTTP API WordPress

$r = wp_remote_get('http://api.fixer.io/latest');

print_r( $r );

Page 10: Миша Рудрастых: Введение в HTTP API WordPress
Page 11: Миша Рудрастых: Введение в HTTP API WordPress
Page 12: Миша Рудрастых: Введение в HTTP API WordPress

$r = wp_remote_get( 'http://api.fixer.io/latest' );

echo $r['body'];

Page 13: Миша Рудрастых: Введение в HTTP API WordPress

$r = wp_remote_get( 'http://api.fixer.io/latest' );

echo wp_remote_retrieve_body( $r );

Page 14: Миша Рудрастых: Введение в HTTP API WordPress

{"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

$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
Page 17: Миша Рудрастых: Введение в HTTP API WordPress

Не всегда получится работать с API без

авторизации

Page 18: Миша Рудрастых: Введение в HTTP API WordPress

Access Token

1. Отправиться на instagram.com/developer и создать приложение

2. Используя Client ID и Client Secret и какой-нибудь инструмент, например https://rudrastyh.com/tools/access-token, создать Access Token

Page 19: Миша Рудрастых: Введение в HTTP API WordPress

Следующий универсальный шаг - работа с

документацией к API

https://www.instagram.com/developer/endpoints

Page 20: Миша Рудрастых: Введение в HTTP API WordPress

www.instagram.com/developer/endpoints

Мы можем смело использовать любые из них, которые не требуют scope

Page 21: Миша Рудрастых: Введение в HTTP API WordPress

www.instagram.com/developer/endpoints

Мы можем смело использовать любые из них, которые не требуют scope

Page 22: Миша Рудрастых: Введение в HTTP API WordPress

www.instagram.com/developer/endpoints

Page 23: Миша Рудрастых: Введение в HTTP API WordPress
Page 24: Миша Рудрастых: Введение в HTTP API WordPress

$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

$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

Транзиты

Page 27: Миша Рудрастых: Введение в HTTP API WordPress

get_transient() set_transient()

Page 28: Миша Рудрастых: Введение в HTTP API WordPress

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

wp_remote_post()

Page 30: Миша Рудрастых: Введение в HTTP API WordPress
Page 31: Миша Рудрастых: Введение в HTTP API WordPress
Page 32: Миша Рудрастых: Введение в HTTP API WordPress

Basic Аутентификация

Page 33: Миша Рудрастых: Введение в HTTP API WordPress

$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
Page 35: Миша Рудрастых: Введение в HTTP API WordPress

$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

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

Thanks for listening

Any questions?

Page 38: Миша Рудрастых: Введение в HTTP API WordPress

vk.com/truemisha