2

Estou iniciando os estudos de algumas RESTful APIs e tenho uma noção do que é REST e uma API. Entretanto, ainda estou meio (muito) confuso sobre o processo.

O LinkedIn fornece uma rica RESTful API através de seu REST Console, por exemplo uma chamada POST seria (segundo a API):

https://api.linkedin.com/v1/people/~/shares?format=json

Ok legal, agora como enviar essa chamada via PHP?

2
  • 1
    Você pode usar Curl para o envio, ou utilizar uma lib como o Guzzle! Commented 10/11/2017 às 18:33
  • Pow se manjar de curl ia ser legal se adicionar uma resposta... vou até inserir a tag curl...
    – MagicHat
    Commented 10/11/2017 às 18:47

1 Resposta 1

8

Primeiramente você deve ter autorização para isso, você deve ter criar uma aplicativo, solicitar que o usuário autorize e então obter o access_token, isso está explicado aqui e aqui.

Irei presumir que esses passos já estão sendo feitos. Se não estiverem, poderá seguir o mesmo princípio demonstrado abaixo.


Segundo a documentação nós temos:

  • URL:

    https://api.linkedin.com/v1/people/~/shares?format=json
    
  • Método:

    POST
    
  • Cabeçalho:

    Authorization: Bearer AQXd...
    Content-Type: application/json
    x-li-format: json
    
  • Corpo:

    {
      "comment": "Check out developer.linkedin.com!",
      "content": {
        "title": "LinkedIn Developers Resources",
        "description": "Leverage LinkedIn's APIs to maximize engagement",
        "submitted-url": "https://developer.linkedin.com",  
        "submitted-image-url": "https://example.com/logo.png"
      },
      "visibility": {
        "code": "anyone"
      }  
    }
    

Aplicando isso para cURL, na mesma ordem, nós temos:

$ch = curl_init();

curl_setopt_array($ch, [

    CURLOPT_URL => 'https://api.linkedin.com/v1/people/~/shares?format=json',

    CURLOPT_POST => true,

    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $token,
        'Content-Type: application/json',
        'x-li-format: json'
    ],

    CURLOPT_POSTFIELDS => json_encode([
        'coment' => 'Check out developer.linkedin.com!',
        'content' => [
            'title' => 'LinkedIn Developers Resources',
            'description' => 'Leverage LinkedIn\'s APIs to maximize engagement',
            'submitted-url' => 'https://developer.linkedin.com',
            'submitted-image-url' => 'https://example.com/logo.png'
        ],
        'visibility' => [
            'code' => 'anyone'
        ]
    ]),

    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_PROTOCOLS => CURLPROTO_HTTPS
]);

echo $resultado = curl_exec($ch);
curl_close($ch);

Lembrando que deve inserir um token válido, no $token. As duas últimas opções são opcionais, porém ideais. O RETURNTRANSFER retorna o resultado para a variável que executa o curl_exec. Já o PROTOCOLS limita os protocolos a serem utilizados. Também é ideal definir o SSL_VERIFYPEER e o SSL_VERIFYHOST, mas no PHP 7.1 eles já são habilitados por padrão.

Você deve fazer log-in para responder a esta pergunta.

Esta não é a resposta que você está procurando? Pesquise outras perguntas com a tag .