Search the Community
Showing results for tags 'module oauth development'.
-
Hi all, First of all - keep in mind I'm not that experienced creating modules / general ProcessWire... I'm creating a module which can be used to tweet a page when saving it. When building this module, the following issue came up; My module has multiple (text) inputfields for connecting to OAuth (http://oauth.net), so as minimal as four fields should be set before an attempt to connect will be done, so no default values can be set. Only when saving the module, I cannot test the connection directly with the new posted data, why? When tested multiple times with a lot of different settings, the first message is a succesful connection to Twitter, and a few lines later the message is failed (or vice-versa depending on posted data). What am I missing/doing wrong? edit: I'm overwriting the $data variables with post data, but in my opinion this shouldn't be the case $wp = wire()->input->post; /** * Set required fields for use of this module * * @return InputfieldWrapper */ public function getModuleConfigInputfields(array $data) { $modules = wire('modules'); $templates = wire('templates'); $fields = wire('fields'); $fieldgroups = wire('fieldgroups'); foreach(self::getDefaultConfig() as $key => $value) { if(!isset($data[$key])) $data[$key] = $value; } // Get default Twitter settings $_ck = $data['publish_to_twitter_consumerkey']; $_cs = $data['publish_to_twitter_consumersecret']; $_at = $data['publish_to_twitter_accesstoken']; $_as = $data['publish_to_twitter_accesstokensecret']; // update/check data only after post $wp = wire()->input->post; if (wire('page')->template == 'admin' && count($wp)) { $_ck = $wp->publish_to_twitter_consumerkey; $_cs = $wp->publish_to_twitter_consumersecret; $_at = $wp->publish_to_twitter_accesstoken; $_as = $wp->publish_to_twitter_accesstokensecret; if(isset($_ck) && isset($_cs) && isset($_at) && isset($_as)) { // wire('session')->message("ck = $_ck"); // wire('session')->message("cs = $_cs"); // wire('session')->message("at = $_at"); // wire('session')->message("as = $_as"); // now we try to connect to Twitter with an OAuth connection and search for hashtag processwire require 'twitteroauth/twitteroauth.php'; $query = array( "q" => '#processwire', "count" => "5", "result_type" => "recent", // "include_entities" => "true", ); $toa = new TwitterOAuth($_ck, $_cs, $_at, $_as); $results = $toa->get('search/tweets', $query); // check if we got any response if (isset($results)) { // check for errors if(isset($results->errors) && count($results->errors)) { foreach($results->errors as $error) { wire('pages')->error("Twitter response: $error->message (Error code: $error->code)"); } } else { // successful connected wire('session')->message("Connection to Twitter was successful"); } } } } $inputfields = new InputfieldWrapper(); // Twitter settings: // Twitter Consumer Key $f = $modules->get('InputfieldText'); $f->attr('name', 'publish_to_twitter_consumerkey'); $f->label = __('Twitter Consumer Key'); $f->required = true; $f->columnWidth = 50; $f->attr('value', $data['publish_to_twitter_consumerkey']); $inputfields->add($f); // Twitter Consumer Secret $f = $modules->get('InputfieldText'); $f->attr('name', 'publish_to_twitter_consumersecret'); $f->label = __('Twitter Consumer Secret'); $f->required = true; $f->columnWidth = 50; $f->attr('value', $data['publish_to_twitter_consumersecret']); $inputfields->add($f); // Twitter Access Token $f = $modules->get('InputfieldText'); $f->attr('name', 'publish_to_twitter_accesstoken'); $f->label = __('Twitter Access Token'); $f->required = true; $f->columnWidth = 50; $f->attr('value', $data['publish_to_twitter_accesstoken']); $inputfields->add($f); // Twitter Access Token Secret $f = $modules->get('InputfieldText'); $f->attr('name', 'publish_to_twitter_accesstokensecret'); $f->label = __('Twitter Access Token Secret'); $f->required = true; $f->columnWidth = 50; $f->attr('value', $data['publish_to_twitter_accesstokensecret']); $inputfields->add($f); return $inputfields; }