After a bit of sweat, here's the solution -- I hope this saves another soul a few moments of their life. In the end, it's a matter of getting and reusing a few variables. Prerequisites I won't cover are that you have a Facebook app created and ready to go, and a Location page to which you want to add the app canvas. The variables we'll touch are :
- Facebook App ID
- Facebook App Access Token w/manage_pages permission
- Parent Page ID
- Parent Page Access Token
- Location Page ID
- Location Page Access Token
Getting the Deed Done
- First, go to the graph explorer at http://developers.facebook.com/tools/explorer/
- Select your application in the drop-down at top right
- Click on Get Access Token
- In the dialog that appears, go to Extended Permissions, and ensure that "manage_pages" is checked
- Click Get Access Token in the Dialog
- The token will auto-populate in the Access Token box within the Graph Explorer
- Change the Graph API textfield to: /me/accounts and request via GET
- The JSON list will return the pages you have rights to administer. If the parent page (parent to the location you want to add a canvas to) is not listed, you don't have the necessary rights -- get them first, then continue. ote the access token and id of the parent page.
- Copy and paste the parent page access token into the Access Token textfield at the top of the explorer
- Copy and paste the parent page id into the request box, changing it to PARENT_PAGE_ID/locations
- Submit via GET. That'll list all locations. You should see your location listed. If you have a ton of them and the list is a pain to read, you can lift it from the URL while you're inside your Location's admin settings panel. Copy your location id
- hange the request box to: LOCATION_ID?fields=access_token
- Submit via GET
- The response will contain the location id (repeated) and the location access token
- Copy and paste the location access token into the Access Token textfield
- Change the graph URL to LOCATION_ID/tabs and the method to POST
- dd a variable `app_id` whose value is the app id whose canvas you want to add (you get the app id from the developer apps panel)
- Submit (via POST) -- the response will be 'true'
Worked for me, repeated twice, what a PITA. Good luck.