SlideShare a Scribd company logo
1 of 38
Download to read offline
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
Мы можем смело использовать любые из них, которые не
требуют scope
$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

More Related Content

What's hot

Профилирования и оптимизация jQuery-кода
Профилирования и оптимизация jQuery-кодаПрофилирования и оптимизация jQuery-кода
Профилирования и оптимизация jQuery-кода
private_face
 
Ubercart -nemnogo_primerov_iz_zhizni
Ubercart  -nemnogo_primerov_iz_zhizniUbercart  -nemnogo_primerov_iz_zhizni
Ubercart -nemnogo_primerov_iz_zhizni
drupalconf
 
plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)
ygoltsev
 
Юрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWWЮрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWW
Positive Hack Days
 
Профилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кодаПрофилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кода
private_face
 
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Ontico
 
1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d
DarkByte2
 

What's hot (17)

Общая архитектура Yii2
Общая архитектура Yii2Общая архитектура Yii2
Общая архитектура Yii2
 
Ф'Yii'лософия
Ф'Yii'лософияФ'Yii'лософия
Ф'Yii'лософия
 
PHP Advanced
PHP AdvancedPHP Advanced
PHP Advanced
 
Алексей Плеханов: 25 причин попробовать Laravel
Алексей Плеханов: 25 причин попробовать LaravelАлексей Плеханов: 25 причин попробовать Laravel
Алексей Плеханов: 25 причин попробовать Laravel
 
Почему Mojolicious?
Почему Mojolicious?Почему Mojolicious?
Почему Mojolicious?
 
Профилирования и оптимизация jQuery-кода
Профилирования и оптимизация jQuery-кодаПрофилирования и оптимизация jQuery-кода
Профилирования и оптимизация jQuery-кода
 
Ubercart -nemnogo_primerov_iz_zhizni
Ubercart  -nemnogo_primerov_iz_zhizniUbercart  -nemnogo_primerov_iz_zhizni
Ubercart -nemnogo_primerov_iz_zhizni
 
plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)
 
Примеры решения типичных задач за рамками ядра Yii2
Примеры решения типичных задач за рамками ядра Yii2Примеры решения типичных задач за рамками ядра Yii2
Примеры решения типичных задач за рамками ядра Yii2
 
Юрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWWЮрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWW
 
YiiConf: Миграции и инсталляции
YiiConf: Миграции и инсталляцииYiiConf: Миграции и инсталляции
YiiConf: Миграции и инсталляции
 
Продвинутое использование ActiveRecord в Yii2
Продвинутое использование ActiveRecord в Yii2Продвинутое использование ActiveRecord в Yii2
Продвинутое использование ActiveRecord в Yii2
 
PHP basic
PHP basicPHP basic
PHP basic
 
Профилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кодаПрофилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кода
 
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
 
Что нового в Perl? 5.10 — 5.16
Что нового в Perl? 5.10 — 5.16Что нового в Perl? 5.10 — 5.16
Что нового в Perl? 5.10 — 5.16
 
1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d
 

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

PHP Tricks
PHP TricksPHP Tricks
PHP Tricks
BlackFan
 
1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d
DarkByte2
 
1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d
DarkByte2
 
1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d
DarkByte2
 
1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d
DarkByte2
 
Импорт данных с фреймворком Migrate. Владислав Богатырев.
Импорт данных с фреймворком Migrate. Владислав Богатырев.Импорт данных с фреймворком Migrate. Владислав Богатырев.
Импорт данных с фреймворком Migrate. Владислав Богатырев.
DrupalCampDN
 
Form api в drupal 7
Form api в drupal 7Form api в drupal 7
Form api в drupal 7
dimateus
 
DUMP-2013 Frontend - Knockoutjs на примере 2ГИС-Онлайн - Таратухин Илья
DUMP-2013 Frontend - Knockoutjs на примере 2ГИС-Онлайн - Таратухин ИльяDUMP-2013 Frontend - Knockoutjs на примере 2ГИС-Онлайн - Таратухин Илья
DUMP-2013 Frontend - Knockoutjs на примере 2ГИС-Онлайн - Таратухин Илья
it-people
 
Js Http Request дмитрий котеров
Js Http Request   дмитрий котеровJs Http Request   дмитрий котеров
Js Http Request дмитрий котеров
Media Gorod
 
KnockoutJS на примере 2ГИС-Онлайн
KnockoutJS на примере 2ГИС-ОнлайнKnockoutJS на примере 2ГИС-Онлайн
KnockoutJS на примере 2ГИС-Онлайн
2ГИС Технологии
 

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

Mojolicious
MojoliciousMojolicious
Mojolicious
 
Perl in practice
Perl in practicePerl in practice
Perl in practice
 
Разработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PIРазработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PI
 
DSLs в Perl
DSLs в PerlDSLs в Perl
DSLs в Perl
 
Ci
CiCi
Ci
 
PHP Tricks
PHP TricksPHP Tricks
PHP Tricks
 
1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d
 
1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d
 
1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d
 
1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d1f5694b92ab2c96e2038b33a8b0ceb7d
1f5694b92ab2c96e2038b33a8b0ceb7d
 
Импорт данных с фреймворком Migrate. Владислав Богатырев.
Импорт данных с фреймворком Migrate. Владислав Богатырев.Импорт данных с фреймворком Migrate. Владислав Богатырев.
Импорт данных с фреймворком Migrate. Владислав Богатырев.
 
Perl – жив?!
Perl – жив?!Perl – жив?!
Perl – жив?!
 
Perl 5.10 и 5.12
Perl 5.10 и 5.12Perl 5.10 и 5.12
Perl 5.10 и 5.12
 
Form api в drupal 7
Form api в drupal 7Form api в drupal 7
Form api в drupal 7
 
Nginx.pm
Nginx.pmNginx.pm
Nginx.pm
 
DUMP-2013 Frontend - Knockoutjs на примере 2ГИС-Онлайн - Таратухин Илья
DUMP-2013 Frontend - Knockoutjs на примере 2ГИС-Онлайн - Таратухин ИльяDUMP-2013 Frontend - Knockoutjs на примере 2ГИС-Онлайн - Таратухин Илья
DUMP-2013 Frontend - Knockoutjs на примере 2ГИС-Онлайн - Таратухин Илья
 
Js Http Request дмитрий котеров
Js Http Request   дмитрий котеровJs Http Request   дмитрий котеров
Js Http Request дмитрий котеров
 
KnockoutJS на примере 2ГИС-Онлайн
KnockoutJS на примере 2ГИС-ОнлайнKnockoutJS на примере 2ГИС-Онлайн
KnockoutJS на примере 2ГИС-Онлайн
 
Psgi app
Psgi appPsgi app
Psgi app
 
UWDC 2013, Yii2
UWDC 2013, Yii2UWDC 2013, Yii2
UWDC 2013, Yii2
 

More from Ruslan Begaliev

More from Ruslan Begaliev (13)

Никита Селиванов: 8 правил эффективного взаимодействия с подрядчиком при созд...
Никита Селиванов: 8 правил эффективного взаимодействия с подрядчиком при созд...Никита Селиванов: 8 правил эффективного взаимодействия с подрядчиком при созд...
Никита Селиванов: 8 правил эффективного взаимодействия с подрядчиком при созд...
 
Анатолий Юмашев: Сайт для бизнеса на WordPress в 2017 году
Анатолий Юмашев: Сайт для бизнеса на WordPress в 2017 годуАнатолий Юмашев: Сайт для бизнеса на WordPress в 2017 году
Анатолий Юмашев: Сайт для бизнеса на WordPress в 2017 году
 
Константин Хомченко: Как раскрыть маркетинговый потенциал Wordpress?
Константин Хомченко: Как раскрыть маркетинговый потенциал Wordpress?Константин Хомченко: Как раскрыть маркетинговый потенциал Wordpress?
Константин Хомченко: Как раскрыть маркетинговый потенциал Wordpress?
 
Анна Ладошкина: Проект Guthenberg: революция в консоли
Анна Ладошкина: Проект Guthenberg: революция в консолиАнна Ладошкина: Проект Guthenberg: революция в консоли
Анна Ладошкина: Проект Guthenberg: революция в консоли
 
Каким будет SEO в начале 2017 года и как нам в этом поможет Wordpress?
Каким будет SEO в начале 2017 года и как нам в этом поможет Wordpress? Каким будет SEO в начале 2017 года и как нам в этом поможет Wordpress?
Каким будет SEO в начале 2017 года и как нам в этом поможет Wordpress?
 
Безопасность и масштабируемость данных
Безопасность и масштабируемость данныхБезопасность и масштабируемость данных
Безопасность и масштабируемость данных
 
Что вам нужно знать, когда вы покидаете виртуальный хостинг?
Что вам нужно знать, когда вы покидаете виртуальный хостинг? Что вам нужно знать, когда вы покидаете виртуальный хостинг?
Что вам нужно знать, когда вы покидаете виртуальный хостинг?
 
Личный бренд и его коммуникация через сайт.
Личный бренд и его коммуникация через сайт. Личный бренд и его коммуникация через сайт.
Личный бренд и его коммуникация через сайт.
 
Бот для Telegram и сайт на WordPress — смогут ли ужиться вместе?
Бот для Telegram и сайт  на WordPress — смогут  ли ужиться вместе?Бот для Telegram и сайт  на WordPress — смогут  ли ужиться вместе?
Бот для Telegram и сайт на WordPress — смогут ли ужиться вместе?
 
A/B тестирование на WordPress. Конверсия не только для лендингов
A/B тестирование на WordPress. Конверсия не только для лендинговA/B тестирование на WordPress. Конверсия не только для лендингов
A/B тестирование на WordPress. Конверсия не только для лендингов
 
Google Tag Manager: Что это и с чем его едят.
Google Tag Manager: Что это и с чем его едят.Google Tag Manager: Что это и с чем его едят.
Google Tag Manager: Что это и с чем его едят.
 
Трудности перевода: как построить мультиязычный сайт на WordPress
Трудности перевода: как построить мультиязычный сайт на WordPressТрудности перевода: как построить мультиязычный сайт на WordPress
Трудности перевода: как построить мультиязычный сайт на WordPress
 
Как я работал на MODx и как перешел на WordPress
Как я работал на MODx и как перешел на WordPressКак я работал на MODx и как перешел на WordPress
Как я работал на MODx и как перешел на WordPress
 

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