请尝试使用插件 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;
}
}
答案 0 :(得分:0)
这里有很多事要做。你真的需要阅读documentation
您应该在初始函数和current_user_can
而不是get_current_user_id
中使用权限回调来确定是否运行回调函数。
您应该使用return new WP_REST_Response( $result, 200 );