Search code examples
facebookfacebook-graph-apicoldfusioncfhttpfacebook-rest-api

Posting to Facebook without a link


I'm working on an API to allow posting to Facebook, using Graph API over REST, sending HTTP post requests to https://graph.facebook.com/me/feed (after succesful OAuth2 auth).

I can specify message and link and it posts the link, (but with message ignored?), and I can also include name, caption and description to get those elements handled - so links are ok.

If I use just message or just picture, I get the error:

(#100) Missing message or attachment

If I use message and picture, it posts the message, without any picture. (Which is useful, but not intended behaviour?)

The only way I can get the picture seems to be as a link (which includes it as a thumbnail).


I've looked through the docs but can't find any useful info on this - all the examples are showing links.

My main question is: What is the intended way to post a message without a picture or link?

But it'd also be useful to know if there's a way to post a picture to the wall? (non-thumbnail, with lightbox)


Solution

  • The actual code is more complex, but simplified here to demonstrate the issue.

    This was failing:

    <cfhttp
        result = "local.Response"
        method = "post"
        url    = #Arguments.Url#
        >
        <cfhttpparam type="url" name="Message" value="#Arguments.Message#" />
    </cfhttp>
    

    This worked:

    <cfset Arguments.Url &= '&message=' & encodeForUrl(Arguments.Message) />
    
    <cfhttp
        result = "local.Response"
        method = "post"
        url    = #Arguments.Url#
        >
        <cfhttpparam type="url" name="dummy" value="ignore" />
    </cfhttp>
    

    (The dummy cfhttpparam is because CF complains if a POST request doesn't contain at least one param.)