Here we go again.
After giving it some time to settle, I decided the best course of action was to re-enable the Facebook integration. I didn't want to remove it because people do use it. However, its been the most time consuming integration I have done and bringing it back required even more time. I want to explain the details of that along with some changes I made to the behavior of the plugin in order to help satisfy the Facebook policy police.
Work involved in bringing it back
1. I had to create a new Facebook application. Simple enough. Hey, what were all my old settings? I had to recreate all of that from memory or guess. I had crafted nice text and such and all of that is gone. That was a pain.
2. Facebook apps have this canvas page and mine was written in the FBML way. Guess what? That's not supported anymore for new applications. So I had to rewrite my canvas page using the new IFRAME standard. Not hard but more work I had to do.
3. New Facebook apps have to use the new OAuth 2.0 authentication method. Now Playing was still using the older Facebook signature model. So I had to change that code to work with this new method. The bummer here was that Facebook (unlike Twitter) totally dropped the ball on the desktop integration story. So I had to come up with a hack that allowed me to authorize and work around the stuff Facebook doesn't provide. I ended up liking it because I get more control of the process. And it cut the authorization down from 3 steps to 2. So boo that I had to change. Yeah that its better now.
4. After changing to the new authentication mechanism, I had to change my requests to use the new tokens. Not a big deal but another change.
So those were the 4 or so things that I had to do to even get it working.
Change to comply with Facebook policy
Obviously bringing back the same exact plugin is going to be a problem, so I am going to make a few changes in order to see if we can be more inline with the Facebook policies. Here is a list of the behavioral changes.
1. I have changed the "Default Rate Limit" from 0 to 15 minutes. You can change it back but I suggest that you don't. Don't spam your friends with every song. If you do and they report it, then we all get dinged. Enough of those and the plugin goes away again and I won't be able to help. I may set a larger minimum in the future.
2. Probably the biggest change to comply with policy is around the message of the post. The message is the piece that you would type in if you updated your own status. Facebook does not want applications to pre-fill or pre-set that. They want the user's own words there. So I can no longer fill this in for you. But I looked a few other applications and saw that they simply leave this blank and instead use the caption for the message-ish update. So that is what I have done. It looks just fine and complies with policy. You can see it in the sample above. The message would have been up above the Rope hyperlink. Now you see that text down below the Rope hyperlink.
3. Now that we can't update the message, the plugin can now longer offer pure status updates. It will only do news feed items. Subtle difference but basically it means you can now only do the nice big album art posts instead of the text updates from the plugin. However, if you want to continue to post them as status the workaround is to post them to Twitter and then install the Facebook Twitter application and have it sync. Then Twitter is the bad guy and I doubt you are going to see Twitter integration disabled anytime soon.
4. If you have Amazon lookup enabled, the plugin now will only do the Facebook update when it finds a match. This prevents you from having missing album art in your Facebook posts. So it will skip that update and try the next song until it matches. Then waits for your rate limit delay. Repeat.
5. For now, I am not going to list the plugin in the Facebook application directory. The complaints tend to come from people who come through that venue. Facebook users seem to be after free stuff. When they find out you have to pay for this plugin, they usually give it a 1 star review. Hard to say if that is fair or not but if it influences the overall rating of the plugin which might jeopardize its Facebook policy status, then I don't want them. So I will keep it off there for now as we work together to build a new reputation for this plugin and its application on Facebook.
Thanks to everyone that responded to my queries. New versions are available on the usual download page. You will have to setup the Facebook integration again. But then you should be off and running.
Long live Now Playing.