Znajdź zawartość
Wyświetlanie wyników dla tagów 'curl' .
-
[ WP -> IPS ] żądanie zwraca błąd ( BAD METHOD )
LavokWWW opublikował(a) temat w Programowanie / tworzenie styli
Witam, Tworzę prosty widżet na WordPress'ie, który będzie wyświetlał kilka pierwszych tematów z forum (IPS 4.4.1). W tym celu usiłuję napisać prostą aplikację po stronie IPS, która będzie zwracać te tematy (tytuł + odnośnik). A więc utworzyłem aplikację w ACP, wygenerowałem klucz API dla tej aplikacji, w folderze API mojej aplikacji utworzyłem odpowiedni plik (zawartość skopiowałem z core/api/hello.php i odpowiednio zmodyfikowałem ). Próbuję po stronie WP wysłać żądanie curlem do IPS'a ale cały czas dostaje error BAD METHOD. Pytanie dlaczego? To samo jest gdy wklepie w przeglądarce http://postsspot.pl/forum/api/index.php?/ppfwdgt/topics&key=api_key. Oczywiście klucz wpisuję prawidłowy. Podsyłam kod PHP funkcji po stronie WP: <?php function pp_get_forum_topics(){ $apiKey = 'jakisapikey'; $url = 'http://postsspot.pl/forum/api/index.php?/ppfwdgt/topics'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "http://postsspot.pl/forum/api/index.php?/ppfwdgt/topics"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE ); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC ); curl_setopt($curl, CURLOPT_USERPWD, "{$apiKey}:" ); $response = curl_exec( $curl ); if (curl_error($curl)) { $error_msg = curl_error($curl); } if (isset($error_msg)) { print_r( $error_msg ); }else{ return $response; } curl_close($curl); } ?> Kod PHP skryptu topics.php w folderze applications/ppfwdgt/api (kod jeszcze nie zwraca tematów): <?php /** * @brief Hello API * @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a> * @copyright (c) Invision Power Services, Inc. * @license https://www.invisioncommunity.com/legal/standards/ * @package Invision Community * @since 3 Dec 2015 */ namespace IPS\ppfwdgt\api; /* To prevent PHP errors (extending class does not exist) revealing path */ if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) ) { header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' ); exit; } /** * @brief Hello API */ class _topics extends \IPS\Api\Controller { /** * GET /ppfwdgt/topics * Get three latest topics. * * @return array * @apiresponse string communityName The name of the community * @apiresponse string communityUrl The community URL * @apiresponse string ipsVersion The Invision Community version number */ public function GETtopics() { return new \IPS\Api\Response( 200, array( 'message' => "works" ) ); } } Czy coś pominąłem? Coś zrobiłem źle? Proszę o pomoc