将 JSON 或 XML API 响应保存到 Wordpress 数据库

编程入门 行业动态 更新时间:2024-10-21 10:04:33
本文介绍了将 JSON 或 XML API 响应保存到 Wordpress 数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时送ChatGPT账号..

我正在做项目,我正在尝试将一位摄影师的 Flickr 帐户与他的 Wordpress 网站集成.这个想法是将 Wordpress 网站与他的 flickr 同步.

I'm working on project and I'm trying to integrate a photographer's Flickr account with his Wordpress website. The idea is to sync the Wordpress website with his flickr.

我正在使用 Flickr API 来获取他的图片 URL、描述、标签和集合并显示所有内容.问题是每次访问我都必须浏览整个 API 响应并解析它.必须提取所有链接、标签、描述等.

I'm using the Flickr API to get his picures URLS, descriptions, tags and sets and display everyting. The problem is that for every visit I have to go through the whole API response and parse it. Have to extract all the links, tags, descriptions etc.

我正在寻找一种方法将这个 API 响应(XML 或 JSON)导入"到 wordpress 数据库并处理这些数据.一旦他更新了他的 flickr 帐户上的某些内容,我就可以选择更新数据库(或者可能只是数据库中的一个表).此更新不需要自动进行.

I'm looking for a way to "import" this API response (XML or JSON) to the wordpress database and work with this data. I'll just have the option to update the database (or maybe just a table on the database) once he updates something on his flickr account. This update doesn't need to be automatic.

推荐答案

以下只是一个概念证明,并在仪表板中创建一个菜单项,其中包含 Flickr API 响应的结果.

The following is just a proof of concept and creates a menu item in the dashboard with the results of the Flickr API response.

add_action( 'admin_menu', function() 
{
    add_menu_page( 
        'Flicker', 
        'Flicker', 
        'add_users', 
        'fck_admin',
        'consult_flickr_api_so_7173971', 
        'http://i.stack.imgur/s2ons.png',
        2
    );  
});

function consult_flickr_api_so_7173971() 
{
    $api_key = 'YOUR-KEY';
    $secret_key = 'YOUR-SECRET'; // not needed for public data
    $uid = 'USER-ID-TO-CONSULT';
    $url = 'https://api.flickr/services/rest/?&method=flickr.people.getPublicPhotos&api_key=' 
         . $api_key 
         . '&user_id=' 
         . $uid 
         . '&format=json&nojsoncallback=1&per_page=15'; // maximum 500
    $flickr = wp_remote_get( $url, array( 'timeout' => 120, 'httpversion' => '1.1' ) );   
    if ( $flickr['response']['code'] == '200' )
    {        
        $flickr_array = json_decode( $flickr['body'], true );
        foreach( $flickr_array['photos']['photo'] as $photo )
        {
            echo '<h2>' . $photo['title'] . '</h2>';
            get_flickr_photo_so_7173971( $photo['id'] );
        }
    }
}

/**
http://www.flickr/services/api/
Useful Methods
 - getExif
 - getInfo
 - getSizes
*/
function get_flickr_photo_so_7173971( $photo_id, $method = 'getSizes' )
{
    $api_key = 'YOUR-KEY';
    $flickr = wp_remote_get( 
        'https://api.flickr/services/rest/?&method=flickr.photos.'
        . $method
        . '&api_key=' 
        . $api_key
        . '&photo_id='
        . $photo_id
        . '&format=json&nojsoncallback=1',
        array(
             'timeout' => 120, 
            'httpversion' => '1.1' 
        ) 
    );

    if ( $flickr['response']['code'] == '200' )
    {
        $flickr_array = json_decode( $flickr['body'], true );        
        $no_print = true;
        foreach( $flickr_array['sizes']['size'] as $size ) 
        {
            if( $size['label'] == 'Medium' ) {
                print_photo_so_7173971( $size );
                $no_print = false;
            } 
        }
        // No medium size was found, just print the first one
        if( $no_print ) 
        {
            print_photo_so_7173971( $flickr_array['sizes']['size'][0] );
        }
    }
}

function print_photo_so_7173971( $size ) 
{
    printf( 
        '<img src="%s" width="%s" height="%s" /><br />',
        $size['source'],
        $size['width'],
        $size['height']
    );
}

我会将这些结果的操作留给读者.

I'll leave the manipulation of these results to the reader.

建议:

设置一个 cron 作业来提取信息并完成您的工作.将此用作参考:显示 Apple App Store 降价的网站小部件?创建一个选项页面并显示带有缩略图、扩展信息和按钮的结果以发送一些操作(图像侧加载、创建新帖子等),请参阅 此处 和此处.

WordPress StackExchange 充满了不错的片段和技术.

WordPress StackExchange is full of nice snippets and techniques.

这篇关于将 JSON 或 XML API 响应保存到 Wordpress 数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

更多推荐

[db:关键词]

本文发布于:2023-04-18 15:19:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/942710.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据库   XML   JSON   Wordpress   API

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!