Refactored Facebook Widget stuff
This commit is contained in:
parent
323b54d239
commit
702ee97c7b
6 changed files with 207 additions and 3 deletions
|
@ -26,8 +26,8 @@ class EmbeddableWidgetsController extends Zend_Controller_Action
|
|||
$this->view->player_form = $form;
|
||||
} else {
|
||||
$this->view->player_error_msg = _("To configure and use the embeddable player you must:<br><br>
|
||||
1. Enable at least one MP3, AAC, or OGG stream under System -> Streams<br>
|
||||
2. Enable the Public Airtime API under System -> Preferences");
|
||||
1. Enable at least one MP3, AAC, or OGG stream under Settings -> Streams<br>
|
||||
2. Enable the Public Airtime API under Settings -> Preferences");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -39,8 +39,83 @@ class EmbeddableWidgetsController extends Zend_Controller_Action
|
|||
|
||||
if (!$apiEnabled) {
|
||||
$this->view->weekly_schedule_error_msg = _("To use the embeddable weekly schedule widget you must:<br><br>
|
||||
Enable the Public Airtime API under System -> Preferences");
|
||||
Enable the Public Airtime API under Settings -> Preferences");
|
||||
}
|
||||
}
|
||||
|
||||
public function facebookAction()
|
||||
{
|
||||
Zend_Layout::getMvcInstance()->assign('parent_page', 'Widgets');
|
||||
|
||||
$apiEnabled = Application_Model_Preference::GetAllow3rdPartyApi();
|
||||
|
||||
if (!$apiEnabled) {
|
||||
$this->view->facebook_error_msg = _("To add the Radio Tab to your Facebook Page, you must first:<br><br>
|
||||
Enable the Public Airtime API under Settings -> Preferences");
|
||||
}
|
||||
|
||||
$CC_CONFIG = Config::getConfig();
|
||||
$baseUrl = Application_Common_OsPath::getBaseDir();
|
||||
|
||||
$facebookAppId = $CC_CONFIG['facebook-app-id'];
|
||||
$this->view->headScript()->appendScript("var FACEBOOK_APP_ID = " . json_encode($facebookAppId) . ";");
|
||||
$this->view->headScript()->appendFile($baseUrl . 'js/airtime/common/facebook.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
|
||||
}
|
||||
|
||||
/** Airtime makes an AJAX POST here after it successfully adds a tab to your Facebook page. */
|
||||
public function facebookTabSuccessAction()
|
||||
{
|
||||
// disable the view and the layout
|
||||
$this->view->layout()->disableLayout();
|
||||
$this->_helper->viewRenderer->setNoRender(true);
|
||||
|
||||
//TODO: Get list of page IDs (deserialize)
|
||||
|
||||
$request = $this->getRequest();
|
||||
if (!$request->isPost()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$values = $request->getPost();
|
||||
$facebookPageIds = json_decode($values["pages"]);
|
||||
|
||||
$CC_CONFIG = Config::getConfig();
|
||||
$facebookMicroserviceUrl = $CC_CONFIG['facebook-app-url'];
|
||||
$facebookMicroserviceApiKey = $CC_CONFIG['facebook-app-api-key'];
|
||||
|
||||
//Post the page tab ID and station subdomain to the social microservice so that mapping can be saved
|
||||
//in a database.
|
||||
foreach ($facebookPageIds as $facebookPageId)
|
||||
{
|
||||
$postfields = array();
|
||||
$postfields["facebookPageId"] = $facebookPageId;
|
||||
$postfields["stationId"] = $CC_CONFIG['stationId'];
|
||||
|
||||
$query_string = "";
|
||||
foreach ($postfields as $k => $v) $query_string .= "$k=".urlencode($v)."&";
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $facebookMicroserviceUrl);
|
||||
curl_setopt($ch, CURLOPT_POST, 1);
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
|
||||
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $query_string);
|
||||
curl_setopt($ch, CURLOPT_USERPWD, ":$facebookMicroserviceApiKey");
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
||||
|
||||
$jsondata = curl_exec($ch);
|
||||
if (curl_error($ch)) {
|
||||
throw new Exception("Failed to reach server in " . __FUNCTION__ . ": "
|
||||
. curl_errno($ch) . ' - ' . curl_error($ch) . ' - ' . curl_getinfo($ch, CURLINFO_EFFECTIVE_URL));
|
||||
}
|
||||
curl_close($ch);
|
||||
|
||||
}
|
||||
|
||||
//$arr = json_decode($jsondata, true); # Decode JSON String
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue