Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

LavokWWW

Użytkownik
  • Postów

    7
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez LavokWWW

  1. 12 godzin temu, maxerxxl napisał:

    Hej. Myślę że ten temat Ci pomoże.


    Dzięki za podsunięcie rozwiązania. 

    W stworzonej już aplikacji, w developer center w zakładce Extensions utworzyłem rozszerzenie dla MemberSync, utworzył się plik z funkcjami, wstawiłem swój kod w funkcji onEmailChange ale coś jest dalej nie tak, bo żądanie nie dociera (brak wpisu w pliku error.log w głównym folderze motywu wordpressa). Po wprowadzeniu zmian rekompilowałem pliki IPS'a (Support->coś jest nie tak, bodajże ) ale nic to nie pomogło... Nie rozumiem o co chodzi..

  2. Witam,

    mam problem ze znalezieniem w plikach IPS kodu odpowiedzialnego za zmianę emaila zalogowanego użytkownka..

    Chcialbym aby podczas zmiany emaila przez zalogowanego użytkownika forum wysłane zostało  żądanie curlem do innej strony www ( Wordpress ) po to aby na tej stronie również został zmieniony email tegoż użytkownika, niestety nie mogę znaleźć odpowiedniej klasy i funkcji do nadpisania lub coś jest nie tak z czymś innym i żądanie nie zostaje wysłane..

    Kod odpowiedzialny za wysłanie żądania umieszczałem m.in w klasie IPS\Member w metodach validationComplete(), save() i w klasie IPS\Settings, metodzie changeValues(). Klasy nadpisywałem..

    Wygląda to tak jakby żądanie nie zostało wysłane z IPS'a (żądanie powinno utworzyć wpis w odpowiednim pliku .log na serwerze WP). Gdy wysyłałem żądanie z aplikacji Advanced Rest Client do WP, wpis się dodawał, więc po stronie Wp wszystko jest raczej ok.. Kod żądania curl podaje niżej:
     

    	
    		$url ="jakiś_dobry_url";
        
    		$apiKey = 'jakiś_dobry_key';
    		
    		$curl = curl_init();
    		$data = array("msg" => 'update' ); 
    		curl_setopt($curl, CURLOPT_URL, $url );
    		curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE );
    		curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC );
    		
    		curl_setopt($curl, CURLOPT_POST, 1 );
    		curl_setopt($curl, CURLOPT_POSTFIELDS, $data ); 
    		curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    		curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    		$response = curl_exec( $curl );
    	
    		curl_close($curl); 
    		



     Czy umieściłem kod żądania nie tam gdzie trzeba? Czy mógłby ktoś wskazać którą klasę powinienem nadpisać i najlepiej też funkcję? Proszę o pomoc..
     

  3.  
    Cytat

    Dlaczego nie skorzystasz z gotowego endpointa pod to: https://invisioncommunity.com/developers/rest-api?endpoint=forums/topics/GETindex


    Jakoś mi to prędzej nie przyszło do głowy.. Użyłem ten endpoint przed chwilą  z nowo wygenerowanym kluczem i jest już zwracana normalna odpowiedź.. Także @DawPi dzięki za pomoc, wykorzystam ten endpoint... 

    I jeżeli to nie wymaga większej rozkminy @DawPi mógłbyś powiedzieć co było nie tak z moim endpointem? Powinienem go przed użyciem zarejestrować jakoś czy coś? Generalnie nie dodawałem żadnego kodu PHP nigdzie oprócz tego skryptu topics.php w folderze api swojej aplikacji..  

    A tutaj jeszcze wkleję co piszą o tym błędzie:
    Code: 3S291/2  
    Message: BAD_METHOD    
    Description: The endpoint the request was sent to does not exist - the HTTP request method may be incorrect (for example, sending a GET rather than a POST).
  4. 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

     

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.