Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2016, 17:10   #21
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А что это тогда?
GET запрос и есть. С доп. заголовком для id.
Ответ приходит в формате JSON.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 23.10.2016, 21:15   #22
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Раз это Get запрос, значит его можно ввести в браузере тоже?
Но
Код:
curl -i \
-H 'Accept: application/vnd.twitchtv.v3+json' \
-H 'Client-ID: axjhfp777tflhy0yjb5sftsil' \
'https://api.twitch.tv/kraken/channels/twitch'
такое не пройдет.

И как такой запрос сделать из php не представляю.
Illusiony вне форума Ответить с цитированием
Старый 23.10.2016, 21:24   #23
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Это просто команда для выполнения GET запроса с помощью утилиты curl.
-H — добавить заголовок, https://api.twitch.tv/kraken/channels/twitch — адрес.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 23.10.2016, 21:25   #24
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

заголовке в браузере вы не добавите.
ну а насчет PHP, пых вполне себе умеет работать с curl'ом.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.10.2016, 21:39   #25
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Вот пример описания cURL :
Код:
<?php 
  // Иницализация библиотеки curl 
  if ($ch = @curl_init()) 
  { 
    // Устанавливаем URL запроса 
    @curl_setopt($ch, CURLOPT_URL, 'http://server.com/'); 
    // При значении true CURL включает в вывод заголовки 
    @curl_setopt($ch, CURLOPT_HEADER, false); 
    // Куда помещать результат выполнения запроса: 
    //  false - в стандартный поток вывода, 
    //  true - в виде возвращаемого значения функции curl_exec. 
    @curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    // Максимальное время ожидания в секундах 
    @curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); 
    // Установим значение поля User-agent 
    @curl_setopt($ch, CURLOPT_USERAGENT, 'PHP Bot (http://blog.yousoft.ru)'); 
    // Выполнение запроса 
    $data = @curl_exec($ch); 
    // Вывести полученные данные 
    echo $data; 
    // Особождение ресурса 
    @curl_close($ch); 
  } 
?>
Мне нужно:
Код:
curl -i \ -H 'Accept: application/vnd.twitchtv.v3+json' \ -H 'Client-ID: axjhfp777tflhy0yjb5sftsil' \ 'https://api.twitch.tv/kraken/channels/twitch'
Как это нужно правильно оформлять?

Может быть как то так?:
Код:
<?php
 $headers = array( 
            "GET https://api.twitch.tv/kraken/channels/twitch HTTP/1.1", 
            "Accept: application/vnd.twitchtv.v3+json",
			"Client-ID: axjhfp777tflhy0yjb5sftsil",	
            "Referer: https://api.twitch.tv/kraken/channels/twitch", 
            "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)", 
            "Host: https://api.twitch.tv/kraken/channels/twitch", 
            "Connection: Keep-Alive" 
        ); 
		
        $ch = curl_init(); 
        curl_setopt($ch, CURLOPT_URL,'https://api.twitch.tv/kraken/channels/twitch'); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
        curl_setopt($ch, CURLOPT_TIMEOUT, 60); 
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
        $data = curl_exec($ch);  
        if (curl_errno($ch)) { 
            echo "Error: " . curl_error($ch); 
        } else { 
            echo "$data"; 
            curl_close($ch); 
        } 



?>
Здесь конечно есть ошибки, но как правильно, я , соответственно, не знаю.

Последний раз редактировалось Illusiony; 23.10.2016 в 21:57.
Illusiony вне форума Ответить с цитированием
Старый 23.10.2016, 21:56   #26
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Illusiony Посмотреть сообщение
Здесь конечно есть ошибки
Какие?

Цитата:
Сообщение от Illusiony Посмотреть сообщение
но как правильно, я , соответственно, не знаю.
Так, как описано в документации по curl (для РНР http://php.net/manual/en/book.curl.php) и API твича.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 23.10.2016, 21:57   #27
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Вот будет работать.

PHP код:
<?php
 $headers 
= array(
            
"Accept: application/vnd.twitchtv.v3+json",
            
"Client-ID: axjhfp777tflhy0yjb5sftsil"
        
);

        
$ch curl_init();
        
curl_setopt($chCURLOPT_URL"https://api.twitch.tv/kraken/channels/twitch");
        
curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
curl_setopt($chCURLOPT_TIMEOUT60);
        
curl_setopt($chCURLOPT_HTTPHEADER$headers);
        
$data curl_exec($ch);
        if (
curl_errno($ch)) {
            echo 
"Error: " curl_error($ch);
        } else {
            echo 
"$data";
            
curl_close($ch);
        }



?>
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 23.10.2016, 22:01   #28
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от pompiduskus Посмотреть сообщение
Вот будет работать.

PHP код:
<?php
 $headers 
= array(
            
"Accept: application/vnd.twitchtv.v3+json",
            
"Client-ID: axjhfp777tflhy0yjb5sftsil"
        
);

        
$ch curl_init();
        
curl_setopt($chCURLOPT_URL"https://api.twitch.tv/kraken/channels/twitch");
        
curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
curl_setopt($chCURLOPT_TIMEOUT60);
        
curl_setopt($chCURLOPT_HTTPHEADER$headers);
        
$data curl_exec($ch);
        if (
curl_errno($ch)) {
            echo 
"Error: " curl_error($ch);
        } else {
            echo 
"$data";
            
curl_close($ch);
        }



?>
Большое спасибо. Действительно так работает.

А на счет того, как узнать, что подписался новый subscriptions и его ник никто не знает можно ли если я не являюсь владельцем канала. Если можно то как именно.

Последний раз редактировалось Illusiony; 23.10.2016 в 22:23.
Illusiony вне форума Ответить с цитированием
Старый 24.10.2016, 21:58   #29
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Я сделал такое :
Код:
<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
Далее введены мои данные вместо пустых ''
$client_id     = '';
$client_secret = '';
$redirect_uri  = '';
$check = $_GET['code'];
echo $check;
if ($check != null) {
    $token_url = 'https://api.twitch.tv/kraken/oauth2/token';
    $data      = array(
        'client_id' => $client_id,
        'client_secret' => $client_secret,
        'grant_type' => 'authorization_code',//authorization_code
        'redirect_uri' => $redirect_uri,
        'code' => $_GET['code']
    );
    $curl = curl_init($token_url);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_TIMEOUT, 1000);
    $result = curl_exec($curl);
	echo $result;
    $i      = curl_getinfo($curl);
	//echo $i['http_code'] ;
    curl_close($curl);
    if ($i['http_code'] == 200) {
        $result = json_decode($result, true);
        // get
        $curl = curl_init('https://api.twitch.tv/kraken/user');
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_HTTPHEADER, array(
            'Accept: application/vnd.twitchtv.v3+json',
            'Client-ID: ' . $client_id,
            'Authorization: OAuth ' . $result['access_token']
        ));
	    curl_setopt($curl, CURLOPT_TIMEOUT, 1000);
        $user = curl_exec($curl);
        $i    = curl_getinfo($curl);
        curl_close($curl);
        if ($i['http_code'] == 200) {
            $user = json_decode($user);
            echo '<p>Thanks ' . $user->display_name . ' <3</p>';
        } else {
            echo '<p>1An error occured, please <a href="/index.php">click here and try again</a></p>';
        }
    } else {
        echo '<p>2An error occured, please <a href="/index.php">click here and try again</a></p>';
    }
} else {
    $scopes = array(
        'user_read' => 1
    );
    $req_scope = '';
    foreach ($scopes as $scope => $allow) {
        if ($allow) {
            $req_scope .= $scope . '+';
        }
    }
    $req_scope = substr($req_scope, 0, -1);
    $auth_url = 'https://api.twitch.tv/kraken/oauth2/authorize?response_type=code';
    $auth_url .= '&client_id=' . $client_id;
    $auth_url .= '&redirect_uri=' . $redirect_uri;
    $auth_url .= '&scope=' . $req_scope;
    $auth_url .= '&force_verify=true';
    echo '<a href="' . $auth_url . '">Please Click this Link to Authenticate with Twitch</a>';
}
По $redirect_uri страничка autoriz.php:
Код:
<?php
//include 'connect_bd.php';
//$login=mysqli_real_escape_string($link,$_POST['login']);
//$passw=mysqli_real_escape_string($link,$_POST['passw']);
//$code=mysqli_real_escape_string($link,$_POST['code']);
echo "mysecret";
?>
Кодировка скриптов UTF-8 без BOM
запускаю этот скрипт из браузера так с добавлением
Код:
?code=mysecret
Получаю ошибку:{
Код:
"error":"Bad Request","status":400,"message":"Invalid authorization code"}


Немного не понимаю как проверяется код который должен выдавать скрипт autoriz.php

Код:
Если вместо authorization_code подставлять в кавычках  mysecret то выдает ошибку:
{"error":"Bad Request","status":400,"message":"Unsupported grant_type: mysecret"}
В https://github.com/justintv/Twitch-A...authentication указано:




[CODE]Если пользователь разрешает приложения, они будут перенаправлены по следующему адресу:

https://[your registered redirect URI]/?code=
Код:
На вашем сервере, теперь вы можете сделать следующий запрос, чтобы получить маркер доступа:

POST https://api.twitch.tv/kraken/oauth2/token

(Смущает меня этот путь с https. У меня в аккаунте твича  redirect URI указан как http и на своем сервере я не подключал сертификат SSH.)

POST Body (URL-кодированный)

client_id=[your client ID]
&client_secret=[your client secret]
&grant_type=authorization_code
&redirect_uri=[your registered redirect URI]
&code=[code received from redirect URI]
&state=[your provided unique token]

Последний раз редактировалось Illusiony; 24.10.2016 в 22:12.
Illusiony вне форума Ответить с цитированием
Старый 24.10.2016, 22:44   #30
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Нужно читать их документацию. API. На вряжли кто-то сделать знает весь из API наизусть.

Как правило в таких ситуациях, берется кружка по больше, и в перед!
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кто-нибудь знает каааак делать?? :( многочлен.динамический список(Delphi) tralala Помощь студентам 0 09.05.2012 00:18
а кто знает как.. topspin Общие вопросы по Java, Java SE, Kotlin 1 29.11.2011 03:50
Как узнать цвет определенного пикселя? pavellyba Мультимедиа в Delphi 3 21.06.2011 08:19
а кто знает как andRR Общие вопросы C/C++ 17 16.06.2009 22:04
Есть список доменных машин. Узнать кто залогинен. luckyfuck Общие вопросы Delphi 2 05.11.2008 15:12