POST remoto de WP para HipChat

O próprio WordPress tem uma ótima interface administrativa que o torna adequado como um CMS. Nem todas as informações capturadas nele são para postagens e páginas. Neste exemplo, escrevi uma função que pode ser usada para interagir com o serviço HipChat para criar uma nova sala.

No curl, seria assim:

curl https://api.hipchat.com/v2/room\?auth_token=XXXXXXXX --data '{"name":"New Room"}' --header "Content-Type:application/json"

Para tornar isso modular, envolvi-o em uma função e usaremos funções específicas do WP para nossa solicitação POST.

function hipchat_create_room( $name = null ) {

Em seguida, precisamos adicionar o URL , os dados e os cabeçalhos das informações específicas da solicitação . O HipChat requer que os dados sejam JSON, então usamos em json_encode( $arg_data );torno de nossa matriz de dados.

$post_url = 'https://api.hipchat.com/v2/room?auth_token=XXXXXXXX';

$arg_data
= array( 'name' => $name );
$data
= json_encode( $arg_data );

$args
= array( 'headers' => array( 'Content-Type' => 'application/json' ), 'body' => $data );

A próxima parte é específica do WP e é recomendada apenas se você estiver usando a plataforma. É relativamente conciso.

$response = wp_remote_post( esc_url_raw( $post_url ), $args );

$response_code
= wp_remote_retrieve_response_code( $response );
$response_body
= wp_remote_retrieve_body( $response );

Verifique se há erros no código de resposta:

// Bail out early if there are any errors
if ( !in_array( $response_code, array(200,201) ) || is_wp_error( $response_body ) )
return false;

Como a resposta está em JSON, prefiro convertê-la para PHP e retornar o resultado.

  $result = json_decode( $response_body );

return $result;

}

Você poderia facilmente pegar este exemplo e adicionar funções adicionais para fornecer mais interação com o HipChat. Por exemplo, agora que criou uma sala, você pode postar uma notificação com algumas informações capturadas de um formulário.

Acessível

Handy!