Я только новичок и учился так благодарен за любые советы, которые вы можете дать 🙂 Я делаю очень простой инструмент для извлечения конкретных данных из API API 1.1 API Twitter для школьного проекта. Я использую J7mbo TwitterAPIExchange.php и формат. Я создал HTML-форму для передачи данных в массив и без POST-запросов к API. Я также могу успешно распечатать конкретные данные из запроса GET API, когда я ввожу переменные в $ getfield в PHP, но когда я пытаюсь использовать форму для отправки данных для запросов GET, я получаю следующие ошибки:
Примечание: Неопределенное смещение: 1 в /var/www/exp/TwitterAPIExchange.php в строке 158
Предупреждение: неверный аргумент, предоставленный foreach () в /var/www/exp/screen1.php в строке 31
Вот код:
ini_set('display_errors', 1); if(!empty($_GET ['screen_name'])) { require_once('TwitterAPIExchange.php'); $settings = array( 'oauth_access_token' => "MY_KEY_HERE", 'oauth_access_token_secret' => "MY_KEY_HERE", 'consumer_key' => "MY_KEY_HERE", 'consumer_secret' => "MY_KEY_HERE", ); /** URL for REST request, see: https://dev.twitter.com/docs/api/1.1/ **/ $url = 'https://api.twitter.com/1.1/friends/list.json'; $getfield = $_GET['screen_name']; $requestMethod = 'GET'; /** Note: Set the GET field BEFORE calling buildOauth(); **/ $twitter = new TwitterAPIExchange($settings); $response = $twitter->setGetfield($getfield) ->buildOauth($url, $requestMethod) ->performRequest(); ##This prints out the fields I am interested in## $arrResults = json_decode($response,true); foreach ($arrResults['users'] as $arrSearchResult) { $strTweet = $arrSearchResult['created_at'] ; $strTweet1 = $arrSearchResult['screen_name'] ; print_r("<div class='tweet'>$strTweet $strTweet1</div>"); } } ?> <h3>Enter the name here</h3> <form action="" method="GET"> <input type="text" name="screen_name" /><br /> <input type="submit" /> </form>
Итак, я думаю, что запрос отклоняется до OAuth, потому что я получаю те же ошибки, даже когда у меня нет ключей доступа в массиве OAuth.
В POST-запросах API данные формы передаются непосредственно в массив вызовов API, но запросы GET строятся по-разному, и я не вижу, как передавать данные формы на него. Это будет нормально работать:
$getfield = '?screen_name=TWITTER_SCREEN_NAME';
Это когда я пытаюсь $ getfield = $ _GET ['screen_name']; Что это не так. Спасибо за ваше время, извините, если этот материал noob раздражает: 3
Если $getfield = '?screen_name=TWITTER_SCREEN_NAME';
работает без данных формы, тогда вам просто нужно изменить строку
$getfield = $_GET['screen_name'];
в
$getfield = "?screen_name=".$_GET['screen_name'];
Предполагая, что вы только проходите через @handle
через форму
Кроме того, (это не относится к вашей проблеме) строка if(!empty($_GET ['screen_na...
не должна иметь пробела между $_GET
и [
.