@Ushelec

Как сделать автоматический постинг из Инстаграмма в WordPress?

Задача сделать автоматический постинг из инстаграма в WordPress.
Причем, схема автопостинга такая - как появляется новое фото в Инстаграм, плагин берет фотку и постит ее в WordPress, для чего проверяет ленту Инстаграма с какой-то периодичностью.
Те плагины, что я видел, требуют вручную размещать тэг и постить самостоятельно. А вот чтобы на полном автомате было - кто-нибудь сталкивался с таким решением?
  • Вопрос задан
  • 1731 просмотр
Решения вопроса 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
примерно так и запускать по крону

define('INST_USER_ID','xxxxxxxxxxxx');
define('INST_CLIENT_ID','xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx);

$json = file_get_contents("https://api.instagram.com/v1/users/{INST_USER_ID}/media/recent/?client_id={NST_CLIENT_ID}");
$array = json_decode($json);

header('Content-Type: text/html; charset= utf-8');
$file = $_SERVER['DOCUMENT_ROOT']. 'instagram-log.txt';

$old = file_get_contents($file);
$old_array = explode('\n',$old);
foreach ($array->data as $one){

    if ( in_array($one->images->standard_resolution->url, $old_array ) === false ) {
        $fp = fopen($file, 'a+');
        fwrite($fp, $one->images->standard_resolution->url.'\n');
        fclose($fp);

        $post_data = array(
            'post_title'    => $one->caption->text,
            'post_content'  => '',
            'post_status'   => 'draft',
            'post_author'   => 1,
            'post_category' => array( 1,2,3,4,5,6 )
        );

        $post_id = wp_insert_post( $post_data );

        $url = $one->images->standard_resolution->url;
        require_once(ABSPATH . "wp-admin" . '/includes/image.php');
        require_once(ABSPATH . "wp-admin" . '/includes/file.php');
        require_once(ABSPATH . "wp-admin" . '/includes/media.php');

        $desc = "";

        $file_array = array();
        $tmp = download_url( $url );
        preg_match('/[^\?]+\.(jpg|jpe|jpeg|gif|png)/i', $url, $matches );
        $file_array['name'] = basename( $matches[0] );
        $file_array['tmp_name'] = $tmp;

        $id = media_handle_sideload( $file_array, $post_id, $desc );

        if( is_wp_error( $id ) ) {
            @unlink($file_array['tmp_name']);
            return $id->get_error_messages();
        }

        @unlink( $file_array['tmp_name'] );

        update_post_meta( $post_id, '_thumbnail_id', $id );


        $image_attributes = wp_get_attachment_image_src( $id );
        $my_post = array();
        $my_post['ID'] = $id;
        $my_post['post_content'] ='<img src="' . $image_attributes[0] . '" alt=""/>';
        wp_update_post( $my_post );
        wp_publish_post( $post_id );
    }

}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
bizikov
@bizikov
http://bizikov.ru
Попробуйте настроить Рецепт в сервисе IFTTT.
Нашел вот такой https://ifttt.com/recipes/547-instagram-to-blog, попробуйте
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы