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

Post on 23-Jan-2018

47 views 0 download

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

HTTP API

Ваш сервер

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

Ваш сервер

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

api.fixer.io/latest

wp_remote_get()

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

print_r( $r );

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

echo $r['body'];

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

echo wp_remote_retrieve_body( $r );

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

$r = wp_remote_get( 'http://api.fixer.io/latest' ); $body = json_decode( wp_remote_retrieve_body( $r ) ); echo $body->rates->USD;

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

авторизации

Access Token

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

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

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

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

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

www.instagram.com/developer/endpoints

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

www.instagram.com/developer/endpoints

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

www.instagram.com/developer/endpoints

$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 . '" />';

$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;

Транзиты

get_transient() set_transient()

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 . '" />';

wp_remote_post()

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

$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 'Подписка оформлена успешно.'; }

$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 'Подписка оформлена успешно.'; }

us8.api.mailchimp.com/3.0/ us10.api.mailchimp.com/3.0/

substr( $api_key,strpos( $api_key,'-')+1) . '.api.mailchimp.com/3.0/

Thanks for listening

Any questions?

vk.com/truemisha