如何使用API链接从其他网站导入数据?

时间:2012-11-02 作者:Pritha Roy

我有一个API链接($content bellow),我需要在仪表板中显示从该链接获取的内容。我一点也不知道怎么做。

if( !class_exists( \'DevMind_DashboardWidget\') ) {
    class DevMind_DashboardWidget {
        function devmind_dashboard_widget() {
            // External Iframe Widget
            echo \'<script src="//www.gmodules.com/ig/ifr?url=http://widgets.getclicky.com/igdash/clicky.xml&amp;up_siteName=www.ejobindia.com&amp;up_siteID=100542361&amp;up_siteKey=a16e8cf0a5a195e5&amp;up_resultLimit=10&amp;up_showKeywords=1&amp;up_showEngines=1&amp;up_initalSelection=0-summary&amp;up_showPercent=1&amp;synd=open&amp;w=320&amp;h=250&amp;title=Clicky&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js"></script>\';

            //$content contains the original xml which I need to transfer into data table 
            $content= \'http://serpbook.com/serp/api/?viewkey=dw8628r&auth=678a498d500a203885191bdd16c70190\';
        }

        function devmind_add_dashboard_widget() {
            wp_add_dashboard_widget( 
                \'devmind-custom-widget\', 
                \'Campaign Manager\', 
                array( \'DevMind_DashboardWidget\', \'devmind_dashboard_widget\' ) 
            );
        }       
    }

    add_action( 
        \'wp_dashboard_setup\', 
            array( 
                \'DevMind_DashboardWidget\', 
                \'devmind_add_dashboard_widget\' 
            ) 
        );
}

1 个回复
最合适的回答,由SO网友:brasofilo 整理而成

首先echo \'<script src="//www.gmodules... 似乎与这个问题完全无关,不是吗?

第二,该API用于没有公共API的付费服务,因此我们无法回答他们的“API答案”。寻求他们的支持。

你要找的是wp_remote_get. 通常,来自API的响应是Json字符串。但在这个服务中,Json的格式似乎不正确。至少,它没有被解码json_decode.

因此,就WordPress而言,这是您获取数据所需要的。您将如何处理这一问题在这里是无关紧要的,请尝试StackOverflow。

if( !class_exists( \'DevMind_DashboardWidget\') ) 
{
    class DevMind_DashboardWidget 
    {
        function devmind_dashboard_widget() 
        {
            $content= \'http://serpbook.com/serp/api/?viewkey=dw8628r&auth=678a498d500a203885191bdd16c70190\';

            $api = wp_remote_get( 
                $content, 
                array( 
                    \'timeout\' => 120, 
                    \'httpversion\' => \'1.1\' 
                ) 
            );

            if ( $api[\'response\'][\'code\'] == \'200\' )
            {
                // This does not work
                $api_array = json_decode( $api[\'body\'] );   
                echo \'<pre>DECODED:<br>\' . print_r( $api_array, true ) . \'</pre>\';

                echo \'<pre>ORIGINAL:<br>\' . print_r( $api[\'body\'], true ) . \'</pre>\';
            }
        }

        function devmind_add_dashboard_widget() 
        {
            wp_add_dashboard_widget( 
                \'devmind-custom-widget\', 
                \'Campaign Manager\', 
                array( \'DevMind_DashboardWidget\', \'devmind_dashboard_widget\' ) 
            );
        }       
    }

    add_action( 
        \'wp_dashboard_setup\', 
        array( \'DevMind_DashboardWidget\', \'devmind_add_dashboard_widget\' ) 
    );
}

结束

相关推荐

使用HTTP API的服务器代码响应不一致

我正在使用Wordpress http api 从youtube api获取服务器响应代码,以便检查视频的有效性。我在我的函数中的函数中执行此操作。php处理我的帖子表单,我在这里收集youtube视频的url。问题是我得到的回应不一致,因为有效的视频偶尔会返回403。现在,我还使用jquery检查前端的有效性。ajax()使用相同的youtube api请求,并且在所有情况下都能正常工作。因此,视频将使用youtube api和jquery进行验证,然后有时使用php方法返回403。那么这里的问题是什么