The photo posting feature is bugged. The get_post_params method of Graph/Publish/Photo.pm returns a list unlike the other Publish/* modules. The full list of parameters should be passed to the
post_async method.
The Graph API also allows an "url" parameter. You can either specify an url to the photo or send the raw photo (multipart/form-data).