Миша Рудрастых: Введение в http api wordpress
TRANSCRIPT
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