FeedBlitz

Sample PHP Code for Plugin Developers

For plugin writers and others using PHP, here are some basic utility functions which will provide almost everything you need to interact with FeedBlitz to do the following:

  • Get a list of active lists
  • Start the dual opt-in subscription process for a list

 The functions use cURL for maximum compatibility.  Click here for insight into the workflow this sample code supports.

<?php 
// helper function to access the FeedBlitz API via GET
function fbz_get_web_page( $url )
{
  $options = array(
    CURLOPT_RETURNTRANSFER => true, // return web page
    CURLOPT_HEADER => false,        // don't return headers
    CURLOPT_FOLLOWLOCATION => true, // follow redirects
    CURLOPT_ENCODING => "",         // handle all encodings
    CURLOPT_USERAGENT => "PHP FeedBlitz Web Form Handler", // a UA is required
    CURLOPT_AUTOREFERER => true,    // set referer on redirect
    CURLOPT_CONNECTTIMEOUT => 120,  // timeout on connect
    CURLOPT_TIMEOUT => 120,         // timeout on response
    CURLOPT_MAXREDIRS => 10,        // stop after 10 redirects 
    CURLOPT_SSL_VERIFYPEER => false,
  );
   
  $ch = curl_init( $url ); 
  curl_setopt_array( $ch, $options ); 
  $content = curl_exec( $ch ); 
  $err = curl_errno( $ch ); 
  $errmsg = curl_error( $ch ); 
  curl_close( $ch ); 
  return $content;
}

// turns the returned XML into a PHP array
function fbz_prepare_results($page)
{
  $xml = simplexml_load_string($page, "SimpleXMLElement", LIBXML_NOCDATA);
  $json = json_encode($xml);
  $array = json_decode($json,TRUE);
  return $array;
}

// returns an array of list IDs, names and current subscriber counts
function fbz_get_lists($api_key, $lists)
{
  $url = "https://app.feedblitz.com/f.api/syndications?key=" . $api_key ."&summary=1&status=ok"; 
  $page = fbz_get_web_page($url);
  $array = fbz_prepare_results($page);
  if($array['rsp']['@attributes']['stat']=="ok")
  {
    $lists_array = $array['syndications']['syndication'];
    if ( ! empty( $lists_array ) ) {
      foreach ( $lists_array as $list_data ) {
        $lists[ $list_data['id'] ]['id']        = $list_data['id'];
        $lists[ $list_data['id'] ]['name']      = $list_data['name'];
        $lists[ $list_data['id'] ]['subscribers_count'] = $list_data['subscribersummary']['subscribers'];
      }
    }
  }
  
  return $lists;
}

// get basic custom fields info for the account
function fbz_get_fields($api_key, $fields)
{
  $url = "https://app.feedblitz.com/f.api/fields?key=" . $api_key ."&status=ok"; 
  $page = fbz_get_web_page($url);
  $array = fbz_prepare_results($page);
  if($array['rsp']['@attributes']['stat']=="ok")
  {
    $fields_array = $array['fields']['field'];
    if ( ! empty( $fields_array ) ) {
      foreach ( $fields_array as $field_data ) {
        $fields[ $field_data['id'] ]['id']          = $field_data['id'];
        $fields[ $field_data['id'] ]['name']        = $field_data['name'];
        $fields[ $field_data['id'] ]['description'] = $field_data['description'];
        $fields[ $field_data['id'] ]['hidden']      = $field_data['hidden'];
      }
    }
  }
  
  return $fields;
}
// starts the dual opt-in process for the specified email address
function fbz_subscribe($api_key, $email, $listid, $tags)
{
  $url="https://app.feedblitz.com/f/?SimpleApiSubscribe&key=" . $api_key . "&email=" . $email . "&listid=" . $listid;
  if($tags!="") {$url=$url . "&tags=" . $tags;}
  $page = fbz_get_web_page($url);
  $xml = simplexml_load_string($page, "SimpleXMLElement", LIBXML_NOCDATA);
  $json = json_encode($xml);
  $array = json_decode($json,TRUE);
  return $array['rsp']['@attributes']['stat']=="ok";  // true if all is well, false otherwise
}

// example: Get a publisher's lists
$apikey = "{{apikey}}";                  // Replace {{apikey}} with the FeedBlitz user's API key.
$lists = fbz_get_lists($apikey,$lists);  // gets all the active lists
var_dump($lists);                        // for debugging
?>

As always, if you have any questions, please don't hesitate to let us know. You can find all of our great support resources and how to get in touch with us via email, chat or phone on our Support Page

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.