API Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ Π―Π½Π΄Π΅ΠΊΡ.Π€ΠΎΡΠΊΠΈ
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»
ΠΡΠΈΠΌΠ΅ΡΡ
$api = new \Yandex\Fotki\Api($login);
// ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
// ΠΏΡΠ½ΠΊΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ, Π½ΠΎ Π² Π―Π½Π΄Π΅ΠΊΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ, ΡΡΠΎ ΡΡΡΠ»ΠΊΠΈ ΠΌΠΎΠ³ΡΡ
// ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ
$api->loadServiceDocument()
// ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ
// ΠΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠ°ΡΠΎΠ»Ρ ΠΎΡ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° ΠΈΠ»ΠΈ fimp-token
// ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅! ΠΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ Fimp-ΡΠΎΠΊΠ΅Π½Π° - Π―Π½Π΄Π΅ΠΊΡ ΡΠ°ΡΡΠΎ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ 502 ΠΎΡΠΈΠ±ΠΊΠΎΠΉ
try {
$api->auth($passwordOrToken);
} catch(\Yandex\Fotki\Exception\ServerError $ex) {
// Π―Π½Π΄Π΅ΠΊΡ ΠΎΡΠ²Π΅ΡΠΈΠ» 502. ΠΠΎΠ²ΡΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΏΡΡΠΊΡ ΡΠ½ΠΎΠ²Π°. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ°Π·Π° Ρ 5 ΡΠ΄Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΊΠ΅Π½
} catch(\Yandex\Fotki\Exception\Api\Auth $ex) {
// Π§ΡΠΎ-ΡΠΎ Ρ ΡΠ°ΠΌΠΎΠΉ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ (ΡΠΌ. $ex->getMessage())
}
// Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ ΡΠΎΠΊΠ΅Π½ ΠΊΡΠ΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ. ΠΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ - Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ ΡΠΎΠΊΠ΅Π½Π° Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ
$token = $api->getAuth()->getToken();
// ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π°Π»ΡΠ±ΠΎΠΌΠΎΠ²
$collection = $api->getAlbumsCollection()
->setLimit(5) // Π»ΠΈΠΌΠΈΡ Π½Π° Π·Π°Π³ΡΡΠ·ΠΊΡ 5 Π°Π»ΡΠ±ΠΎΠΌΠΎΠ²
->load();
$collection->getList();
// ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π²ΡΠ΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
$collection = $api->getAlbumsCollection()->loadAll();
// ΠΠΎΡΡΡΠ°Π½ΠΈΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
try {
$collection = $api->getAlbumsCollection()->load()->next()->next()->next();
} catch(\Yandex\Fotki\Exception\Api\StopIteration $ex) {
// ΠΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΠΏΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠΉ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ
}
// Π‘ΠΏΠΈΡΠΎΠΊ Π°Π»ΡΠ±ΠΎΠΌΠΎΠ² Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
$albums = $collection->getList();
$album = null;
// ΠΡΠΎΡ
ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΠΎ Π°Π»ΡΠ±ΠΎΠΌΠ°ΠΌ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ (Π±Π΅ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΠΏΠ°Π²ΡΠΈΠΉΡΡ)
foreach($albums as $id => $item) {
$album = $item;
break;
}
// Π Π°Π±ΠΎΡΠ° Ρ Π°Π»ΡΠ±ΠΎΠΌΠΎΠΌ - ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ
// ΠΈ ΠΌΠ΅ΡΠ°-ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎΠ± Π°Π»ΡΠ±ΠΎΠΌΠ΅.
// ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌ Π²ΡΠ΅ ΡΠΎΡΠΊΠΈ Π°Π»ΡΠ±ΠΎΠΌΠ°
$photos = $album->loadAll()->getList();
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠ΄Ρ ΠΏΡΠΎΠΏΠΈΡΠ°Π½Ρ php-doc ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π² IDE Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΠΏΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²., (*1)
ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² API ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Serializable, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ., (*2)
$api = new \Yandex\Fotki\Api($login);
$api->auth($token);
// ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌ Π²ΡΠ΅ Π°Π»ΡΠ±ΠΎΠΌΡ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ
$collection = $api->getAlbumsCollection()->loadAll();
// Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ (ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π² ΠΊΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ)
echo serialize($collection);
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠΎΡΠΎ
$api = new \Yandex\Fotki\Api($login);
$api->oauth($token);
// ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΏΡΡΡ ΠΊ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅.
$imgPath = 'path_to_photo.png';
try {
// ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ Π½Π° Π―Π½Π΄Π΅ΠΊΡ.Π€ΠΎΡΠΊΠΈ
// ΠΡΠΎΡΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ (Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ) ΡΠΊΠ°Π·Π°ΡΡ id ΡΠΎΡΠΎΠ°Π»ΡΠ±ΠΎΠΌΠ°, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠΏΠ°ΡΡΡ ΡΠΎΡΠΊΠ°
$arPhoto = $api->sendPhoto(array('image'=> '@'. $imgPath,'access' => 'public'), 479011);
} catch (\Yandex\Fotki\Exception\Api $ex) {
}
// ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ.
print_r($arPhoto);