TL;DR: look for bold text to see the questions without context.
When something bad (or good, but this is a cruel world) happens, FB has a feature to change your profile picture - when USA legalized gay marriage you could have had a rainbow flag over your pic, when SW7 came out, you could have added a lightsaber, etc.
I wanted to do something similiar for a social campaign and started writing an app for that. I figured it should be possible, as in case of Star Wars it seemed to be managed by private company (Disney), not FB itself.
My plan was to:
- download current user profile pic (done, though I cannot get good quality; anyway, gonna fix that later)
- in-memory add the banner (done)
- upload that photo with banner added (done)
- redirect user to photo from (3) with makeprofile=1 as proposed here, to make it users profile picture
- profit
Unfortunately, the answer quoted in (4) doesn't seem to be working anymore.
My question is: is this still possible? If yes - how? If not - do I have any alternatives?
I've also tried figuring out how is the link "Make Profile Picture" in webview composed. It looks like:
https://www.facebook.com/photo.php?fbid=<<picture id>&set=a.<<similiar, but not the same as picture id>>.<<not a clue>>.<<seems to be profile id>>&type=3&makeprofile=1&profile_id=<<profile id, duh>>&pp_source=photo_view
If anyone knows what following parts mean, my issue would probably be solved:
<<similiar, but not the same as picture id>>
<<not a clue>>
<<seems to be profile id>>
I also tried figuring out ProfilePictureSource, but the abstraction itself isn't described anywhere (or I couldn't find it) and judging by permissions needed, that doesn't seem like what I need (why would I need any pages, groups, mailbox or business permissions when I only want to update a profile pic?). If that is the way and I just lost it, please tell me how to use it.
Another way to answer this question would be to propose alternative way of having the banner over profile picture.
For the record, I'm using Python with facebook-sdk wrapper, but only for fast prototyping - I could as well use Java with Spring Social, DLang with manual HTTP calls, whatever - technology isn't an issue, I need a general way here.