jolicode / slack-php-api

:hash: PHP Slack Client based on the official OpenAPI specification
https://jolicode.github.io/slack-php-api/
MIT License
222 stars 56 forks source link

channelHistory example #47

Closed ghost closed 4 years ago

ghost commented 5 years ago

I've connected all working but when I try and query channel 200 object but no messages?

$slack_token = "bla"; $slack_uid = "blabla";

$client = ClientFactory::create($slack_token);

$results = $client->channelsHistory(['count' => 100, 'token' => $slack_token, 'channel' => 'Cblabla']);
$messages = $results->getMessages();

print_r($messages);

pyrech commented 4 years ago

Hello @timrabbetts, sorry for the delay. I didn't see your issue until now.

If you received no messages, I guess something is wrong for the Slack API. When there is a an error, Slack always return a 200 response, but with a property ok set to false and an error message.

With previous version (< 2.2) of this package, you needed to check the boolean property ok of the object to check if Slack really returned some data:

$results = $client->channelsHistory(['count' => 100, 'channel' => 'Cblabla']);

if (!$results->getOk()) {
    // Slack returned an error
}
$messages = $results->getMessages();

With the version >= 2.2, everything is now more simple because our SDK now throws an exception as soon as Slack return an error code.

That beiing said, in most cases, there is a problem with your token. Is it valid? Does it have the required scope to retrieve messages?

On a side note, you do not need to pass the token at each endpoint if you already provided it in the ClientFactory :wink:

pyrech commented 4 years ago

Closing as an explanation has been given. Feel free to reopen if you need more details. Thanks :wink: