Preprocess Google Calendar Feed

2014-01-03 | Category: General (47)

A common use case for our service is embedding a google calendar feed as box into a website. There is however one issue with those feeds: their entry date doesn't contain the event date - instead it's when the event was created (or last updated).

You can work around that by adding &sortorder=ascending&orderby=starttime parameters - and use "natural" sort order in the rssinclude box options.

This however doesn't work anymore if you try to combine multiple feeds and need to sort the events by date.

Preprocessing the feed using a custom php script on your own server is an easy workaround for this. Basic knowledge about php should be enough to get this running.

So if you have an Webserver where you can run custom php scripts, upload the following php script and use that script url as feed url in include.

<?php
$url = 'https://www.google.com/calendar/feeds/......';
$xml = simplexml_load_file($url);
foreach ($xml->entry as $entry) {
 
    unset($entry->published); //remove published from xml
 
    //parse "When: " from content using regular expression
    if (preg_match('#When: (.*)#', $entry->content, $m)) {
        $date = $m[1];
        $date = preg_replace('# to .*#', '', $date); //remove to time
        $date = date('c', strtotime($date)); //reformat date
 
        $entry->updated = $date; //assign date to xml
    }
}
header('Content-Type: application/atom+xml; charset=UTF-8');
echo $xml->asXml();
 

If you have troubles getting the script running feel free to contact us.

Include a box in a facebook page

2013-09-27 | Category: Features (19)

In the past including an iframe in a facebook page was easy using the iframe Wrapper tool.
Since a few months this solution isn't working anymore, so we had to look for another way.

Requirements

You need to have a Facebook Developer Account.
Take a look here how to create one.

Create a facebook page

First of all you have to create a facebook page

  • Go to the Facebook Developer Center
  • Click on apps at the left top corner
  • Then click on Create a new app
  • Fill in a valid Application Name and continue

It's as easy as that.

Detailed Settings

After creating your App note down your APP ID, we will need it later, when we add the App to our Facebook Page.

Set up your Facebook App like the example below:

  • Set the domain to rssinclude.com
  • Click on "+ Add Platform" and choose "Pagetab"
  • The Page Tab Name will be displayed on your Facebook Page
  • Set "Page Tab Url" to your RSSbox url
  • Set "Secure Page Tabl Url" to your https RSSbox url

you get your https RSSbox url by using the output1s.rssinclude.com domain
you can have a look here for detailed information

Adding the Box to a Facebook Page

  • use the following link to add your RSSBox to a Page (instead of "YOUR_APP_ID" use your facebook app id):
  • Click on Add Page Tab




Result

We have successfully added a RSSBox to Facebook!

Update frequency restored

2013-06-14 | Category: General (47)

To have as fast as possible output of our boxes we can't fetch the used feed servers while generating the output. Some feed servers take 10sec+ to respond - and you certainly don't want to wait that long for the box.

So we have a server farm running in background periodically checking feeds for updates. At the moment this causes around 30 updates per second. Some of those updates take up to 30 seconds until they time out. So you can imagine this required quite some resources.

And that's why we have spread that load across multiple servers - including AWS Spot Instances - where you basically bid for server instances. Recently the price got too high for us and so the average feed age went up to 60 minutes.

We now ordered a bunch of ordinary (non "cloud") VPS helping with the updates - and we are finally back to 30 minutes!

Check the status page for the current feed age.

Picture Box improvements

2013-04-02 | Category: General (47), Features (19)

Just a short update:

We improved Picture Box Template behavior for feed items not containing images. With that change empty items won't show up anymore for items that don't contain images. This makes it possible to use feeds where not all items have an image - those will be ignored silently.

Continuing support for Twitter Feeds

2013-03-11 | Category: General (47), Features (19)

As Twitter plans to retire it's old API - which will remove support for rss feeds - and many of our users have twitter feeds in their RSSboxes we where looking for an alternative.
Twitter provides alternative APIs that are completely incompatible with rss feeds.
We still took the required steps to implement support for this Twitter API.
A very nice side effect is that Twitter updates are much faster now, usually new tweets show up in the box in less than a minute.

How to use if you already have a twitter feed?

If the feed url follows this schema: http://twitter.com/statuses/user_timeline/123456.rss you don't have to do anything, we will update the feed.

How to use for new twitter feeds?

Simply add a new feed with following urls:
http://twitter.com/statuses/user_timeline/123456.rss
http://twitter.com/statuses/user_timeline/screenname.rss
http://twitter.com/screenname

What about other twitter feeds?

At the moment other feeds (like search) are not supported. If you have a need for one contact us.

Feedback

If you have a problem, question or just like this new feature feel free to contact us.

blogspot feeds update issue fixed

2013-02-28 | Category: General (47)

Short version: We fixed a bug on our update servers that slowed down blogspot feed updates.


Long version including technical details for the ones who are interested:

One of our users (thanks Jennifer!) reported that updating blogspot feeds takes longer than it should. As first step we did what we always do in such cases - enabled detailed logging for the feed. That shows us how often it gets updated, if it was successful, if new entries where fetched and which one of our update server actually did the update.

In this particular case we found that our newer update servers that run inside Amazon AWS (a bunch of Spot Instances) where all failing, while the older ones did not. Resulting in on average only half the usual updates.

As it turns out the real problem behind all this is a bug in pecl_http, the php extension we use for getting the feed contents. The response body is not parsed at all if the result contains a If-Last-Modified date equal the requested If-Modified-Since - although the server responded with a 200 OK and not a 304 Not Modified. And this bug does not show in older versions of the software stack like Debian used on our old update servers. (Yeah, never change a running system :D)

And now this particular bug only shows up because of another one - the etag is not quoted correctly when a weak etag is used.

For the second bug we now have a workaround online that should fix all blogspot feed updates.

Output Server update

2013-01-31 | Category: General (47)

Another update to our output infrastructure just went live.

Our feed server now also runs on Amazon Webservices - that means generating output is much faster as we don't have to connect outside of AWS. Additionally we now have better redundancy as we now have two instances containing the feed content.

This update should fix all output problems that unfortunately happened during the last few days.

Don't show errors when using PHP integration

2012-11-08 | Category: General (47)

It can happen that our output servers are offline for some reason and return a blank page or an HTTP 500 Error. (which actually happened yesterday for a short period of time)

To lower the impact of such a problem (which should not happen at all but we still can't exclude) we updated the PHP include code to prevent error messages generated by our system from causing problems in your own PHP code.

For other integration methods you don't have to do anything, the browser will silently ignore the error.


Old Code:

<?php readfile('http://output32.rssinclude.com/output?type=php&id=123&hash=abcdef')?>


New Code:

<?php @readfile('http://output32.rssinclude.com/output?type=php&id=123&hash=abcdef')?>


...or simply generate a new one in the Include tab of your RSSbox

Async JavaScript integration

2012-11-07 | Category: General (47), Features (19)

We have been working hard on improving performance for our output servers. And now we implemented another feature that makes the performance of your website completely independet of our output servers.

We implemented a long requested feature: you can now integrate JavaScript asynchronously - the box content is loaded in background while your webpage is already displayed.

To use this method simply choose async JavaScript in the Include tab of your box.

Downside of this method is that your page layout doesn't know about the space the box needs, so you might get flickering. If you don't want that, simply use the old integration method.

Support for relative urls in description

2012-11-07 | Category: General (47), Features (19)

Some feeds have in their item description html with relative links. Until now we didn't support that - and those links where output exaclty like in the feed - resulting in broken links.

We now parse those links and add the feed domain in front.

Popular feeds that had this issue where facebook and amazon feeds.

This new feature is active automatically - you might have to save your styling options once to make sure the output cache is cleared.

If you encounter any issues regarding this feature contact us.