授权承载 - Wordpress REST API

时间:2017-10-06 22:30:12

标签: php wordpress rest

请尝试使用插件 WP OAuth服务器在Wordpress中创建REST API,然后在 Oauth服务器中创建新客户端并生成新的访问令牌,我无法通过标题

中的授权进行连接
function register_api_hooks2() {
    register_rest_route(
        'wp/v2/', '/beacon_products',
        array(
            'methods'  => POST,
            'callback' => 'beacon_products',
            'args' => [
                'id'
            ],
        )
    );
    function beacon_products($request){
        global $wpdb;
        $current_user_id = get_current_user_id();

        if ( empty( $current_user_id ) ) {
            return new WP_Error( 'rest_not_logged_in', __( 'You are not currently logged in.' ), array( 'status' => 401 ) );
        }


        $result = array();
/*      filter_var($_POST['beacon_id'], FILTER_VALIDATE_INT)*/
        if(isset($_POST['eid']) && !empty($_POST['eid']) && isset($_POST['uid']) && !empty($_POST['uid'])){         
            try {
        /* code  */
                }else{
                    return new WP_Error( 'Beacon introuvable','Aucun beacon associé au ses paramétres', array( 'status' => 404 ) );
                }
            } catch (Exception $e) {
                return new WP_Error( 'Une erreur s\'est produite','Une erreur au niveau de serveur', array( 'status' => 500 ) );
            }
        }else{
            return new WP_Error( 'parametre manquant','eid ou bien uid introuvable', array( 'status' => 403 ) );
        }
        return $result;
    }
}

1 个答案:

答案 0 :(得分:0)

这里有很多事要做。你真的需要阅读documentation

您应该在初始函数和current_user_can而不是get_current_user_id中使用权限回调来确定是否运行回调函数。

您应该使用return new WP_REST_Response( $result, 200 );

返回回调输出