/** * * @return boolean */ public function confirmFacebookAccess() { if (!static::$conf->FacebookPushUpdates) { return false; } try { FBAuthenticator::validate_current_conf('page'); } catch (Exception $e) { static::$conf->FacebookPageAccessToken = null; static::$conf->write(); return false; } try { FBAuthenticator::validate_current_conf('user'); } catch (Exception $e) { static::$conf->FacebookUserAccessToken = null; static::$conf->write(); return false; } return true; }
public function updateCMSFields(FieldList $fields) { // --------- // Facebook // --------- $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('FacebookHeading', '<h3>Facebook</h3>')); // Validate Page Access Token $userValid = $pageValid = false; try { $pageValid = FBAuthenticator::validate_current_conf('page'); } catch (Exception $e) { $pageMsg = $e->getMessage(); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('FacebookBrokenPageConf', '<span style="color:red">Your facebook page configuration is broken (' . $pageValid . ')</span>')); } // Validate User Access Token try { $userValid = FBAuthenticator::validate_current_conf('user'); } catch (Exception $e) { $userMsg = $e->getMessage(); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('FacebookBrokenUserConf', '<p style="color:red">Your facebook user configuration is broken (' . $userMsg . ')</p>')); } $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('FacebookAppLink', '<p>Manage your apps here: <a href="https://developers.facebook.com/apps/">https://developers.facebook.com/apps/</a></p>')); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('FacebookIDLink', '<p>Find your Facebook IDs here: <a href="http://findmyfbid.com/">http://findmyfbid.com/</a></p>')); $fields->addFieldsToTab('Root.SocialMedia', new TextField('FacebookAppId', 'Facebook App Id')); $fields->addFieldsToTab('Root.SocialMedia', new TextField('FacebookAppSecret', 'Facebook App Secret')); $fields->addFieldsToTab('Root.SocialMedia', new TextField('FacebookUserId', 'Facebook User Id')); $fields->addFieldsToTab('Root.SocialMedia', new TextField('FacebookPageId', 'Facebook Page Id')); $fields->addFieldsToTab('Root.SocialMedia', new CheckboxField('FacebookPushUpdates', 'Push publication updates to authorised Facebook account')); $fields->addFieldsToTab('Root.SocialMedia', new CheckboxField('FacebookPullUpdates', 'Pull publication updates from authorised Facebook account')); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('FacebookUserData', '<h4>Facebook User</h4>')); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('FacebookUserLink', '<p><a target="_blank" href="' . $this->FacebookUserLink() . '">' . $this->owner->FacebookUserId . '</a></p>')); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('FacebookUserAccessToken', '<p>Facebook User Access Token</p><p>' . ($this->owner->FacebookUserAccessToken ? $this->owner->FacebookUserAccessToken . ' <a href="/FBAuthenticator/purge" target="_blank">Wipe</a>' : '<a href="/FBAuthenticator" target="_blank">Authenticate</a>') . '</p>')); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('FacebookPageData', '<h4>Facebook Page</h4>')); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('FacebookPageLink', '<p><a target="_blank" href="' . $this->FacebookPageLink() . '">' . $this->owner->FacebookPageId . '</a></p>')); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('FacebookPageAccessToken', '<p>Facebook Page Access Token</p><p>' . ($this->owner->FacebookPageAccessToken ? $this->owner->FacebookPageAccessToken . ' <a href="/FBAuthenticator/purge" target="_blank">Wipe</a>' : '<a href="/FBAuthenticator" target="_blank">Authenticate</a>') . '</p>')); // --------- // Twitter // --------- $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('TwitterHeading', '<br><h3>Twitter</h3>')); // user try { $twitterValid = TwitterAuthenticator::validate_current_conf(); } catch (Exception $e) { $twitterMsg = $e->getMessage(); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('TwitterBrokenConf', '<p style="color:red">Your twitter configuration is broken</p>')); } $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('TwitterAppLink', '<p>Manage your apps here: <a href="https://apps.twitter.com/">https://apps.twitter.com/</a></p>')); $fields->addFieldsToTab('Root.SocialMedia', new TextField('TwitterConsumerKey', 'Twitter Consumer Key')); $fields->addFieldsToTab('Root.SocialMedia', new TextField('TwitterConsumerSecret', 'Twitter Consumer Secret')); // only add the username field if we don't have an auth token if (!$this->owner->TwitterOAuthToken) { $fields->addFieldsToTab('Root.SocialMedia', new TextField('TwitterUsername', 'Twitter Username (optional)')); } $fields->addFieldsToTab('Root.SocialMedia', new CheckboxField('TwitterPushUpdates', 'Push publication updates to authorised Twitter account')); $fields->addFieldsToTab('Root.SocialMedia', new CheckboxField('TwitterPullUpdates', 'Pull publication updates from authorised Twitter account')); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('TwitterUserData', '<h4>Twitter User</h4>')); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('TwitterUserLink', '<p><a href="' . $this->TwitterPageLink() . '">' . $this->owner->TwitterUsername . '</a></p>')); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('TwitterOAuthToken', '<p>Twitter OAuth Token</p><p>' . ($this->owner->TwitterOAuthToken ? $this->owner->TwitterOAuthToken . ' <a href="/TwitterAuthenticator?wipe=1" target="_blank">Wipe</a>' : '<a href="/TwitterAuthenticator?start=1" target="_blank">Authenticate</a>') . '</p>')); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('TwitterOAuthSecret', '<p>Twitter OAuth Secret</p><p>' . ($this->owner->TwitterOAuthSecret ? $this->owner->TwitterOAuthSecret . ' <a href="/TwitterAuthenticator?wipe=1" target="_blank">Wipe</a>' : '<a href="/TwitterAuthenticator?start=1" target="_blank">Authenticate</a>') . '</p>')); // --------- // Instagram // --------- $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('InstagramHeading', '<br><h3>Instagram</h3>')); // user try { $instagramValid = InstagramAuthenticator::validate_current_conf(); } catch (Exception $e) { $instagramMsg = $e->getMessage(); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('InstagramBrokenConf', '<p style="color:red">Your instagram configuration is broken</p>')); } $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('InstagramAppLink', '<p>Manage your apps here: <a href="http://instagr.am/developer/">http://instagr.am/developer/</a></p>')); $fields->addFieldsToTab('Root.SocialMedia', new TextField('InstagramApiKey', 'Instagram Client ID')); $fields->addFieldsToTab('Root.SocialMedia', new TextField('InstagramApiSecret', 'Instagram Client Secret')); // only add the username field if we don't have an auth token if (!$this->owner->InstagramOAuthToken) { $fields->addFieldsToTab('Root.SocialMedia', new TextField('InstagramUsername', 'Instagram Username')); $fields->addFieldsToTab('Root.SocialMedia', new TextField('InstagramUserId', 'Instagram User ID')); } $fields->addFieldsToTab('Root.SocialMedia', new CheckboxField('InstagramPushUpdates', 'Push publication updates to authorised Instagram account')); $fields->addFieldsToTab('Root.SocialMedia', new CheckboxField('InstagramPullUpdates', 'Pull publication updates from authorised Instagram account')); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('InstagramUserData', '<h4>Instagram User</h4>')); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('InstagramUserLink', '<p><a target="_blank" href="' . $this->InstagramPageLink() . '">' . $this->owner->InstagramUsername . '(' . $this->owner->InstagramUserId . ')</a></p>')); $fields->addFieldsToTab('Root.SocialMedia', new LiteralField('InstagramOAuthToken', '<p>OAuth Token</p><p>' . ($this->owner->InstagramOAuthToken ? $this->owner->InstagramOAuthToken . ' <a href="/InstagramAuthenticator?wipe=1" target="_blank">Wipe</a>' : '<a href="/InstagramAuthenticator?start=1" target="_blank">Authenticate</a>') . '</p>')); return $fields; }