Показать сообщение отдельно

  #10  
Старый 05.11.2021, 00:26
Mex-Vision
Постоянный
Регистрация: 01.03.2016
Сообщений: 828
С нами: 5368054

Репутация: 448


По умолчанию

Решил проблему благодаря ответам в данной теме, Google Translate и документации Twitch Api.

Алгоритм действий для таких чайников как я:

1) Регистрируем приложение - Twitch

2) CLIENT_ID - Перейдите в свое приложение, там будет поле "Идентификатор клиента" - это он и есть.

3) CLIENT_SECRET - Перейдите в свое приложение, там будет кнопка "Новый секретный код", после нажатие вы его увидите.

4) Метод _getAccessToken получает токкен для авторизации, который в дальнейшем используется в заголовке запроса.

Документация для тех кто будет допиливать код: Reference

Примитивный класс для работы с Twitch Api.

PHP:


Код:
class
TwitchApi
{
const
HELIX_URL
=
'https://api.twitch.tv/helix'
;
// Регистрируем приложение и получаем ключи тут - https://dev.twitch.tv/console/apps/
const
CLIENT_ID
=
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
;
const
CLIENT_SECRET
=
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
;
private
$curl
=
null
;
public
function
__construct
(
)
{
$this
-
>
curl
=
curl_init
(
)
;
}
/**
     * @link https://dev.twitch.tv/docs/api/reference#get-streams
     */
public
function
getStreams
(
array
$arr
=
null
)
{
$url
=
self
:
:
HELIX_URL
.
'/streams?'
.
http_build_query
(
$arr
,
""
,
null
,
PHP_QUERY_RFC3986
)
;
return
$this
-
>
_curl_exec
(
$url
)
;
}
/**
     * @link https://dev.twitch.tv/docs/api/reference#get-channel-information
     */
public
function
getChannel
(
array
$arr
=
null
)
{
$url
=
self
:
:
HELIX_URL
.
'/channels?'
.
http_build_query
(
$arr
,
""
,
null
,
PHP_QUERY_RFC3986
)
;
return
$this
-
>
_curl_exec
(
$url
)
;
}
private
function
_curl_exec
(
string
$url
)
{
curl_setopt_array
(
$this
-
>
curl
,
[
CURLOPT_URL
=
>
$url
,
CURLOPT_RETURNTRANSFER
=
>
1
,
CURLOPT_TIMEOUT
=
>
1
,
CURLOPT_HTTPHEADER
=
>
[
'Authorization: Bearer '
.
$this
-
>
_getAccessToken
(
)
,
'Client-Id: '
.
self
:
:
CLIENT_ID
]
]
)
;
return
json_decode
(
curl_exec
(
$this
-
>
curl
)
,
true
)
;
}
private
function
_getAccessToken
(
)
{
$url
=
'https://id.twitch.tv/oauth2/token'
;
$data
=
array
(
'client_id'
=
>
self
:
:
CLIENT_ID
,
'client_secret'
=
>
self
:
:
CLIENT_SECRET
,
'grant_type'
=
>
'client_credentials'
)
;
$options
=
array
(
'http'
=
>
array
(
'header'
=
>
"Content-type: application/x-www-form-urlencoded\r\n"
,
'method'
=
>
'POST'
,
'content'
=
>
http_build_query
(
$data
)
)
)
;
$context
=
stream_context_create
(
$options
)
;
$result
=
json_decode
(
file_get_contents
(
$url
,
false
,
$context
)
,
true
)
;
return
$result
[
'access_token'
]
;
}
public
function
__destruct
(
)
{
if
(
!
is_null
(
$this
-
>
curl
)
)
curl_close
(
$this
-
>
curl
)
;
}
}
Результат выполнения метода getStreams(['user_login' => 'weplaycsgo_ru']):

PS: Спасибо

òbiòbi верифицированный пользователь.​=)
 
Ответить с цитированием