DFF on Drupal 6.10. Links messed up.

Philipp Lipflip Brauner

I got DFF working on a Drupal 6.10 installation after looking into http://www.drupalforfacebook.org/node/1179 .

I can look at the landing page of my application on facebook but (site local) links lack the domain name (e.g. they show up as http://node/9?_fb_fromhash=40f584546ef5141ab3f242e359f018c6). So actually using the application is not possible.

Any ideas what I can do about this? Thank you very much.

From what we're seeing, it's

From what we're seeing, it's all links - tabs, drupal navigation, hard-coded relative links, WYSIWYG created links, read more links from views. All appearing like those in the initial post.

I do understand correctly that canvas.module is essentially re-writing all links, right?

Also, Drupal 6.10 and DFF 6.x-2.x-dev with clean urls working.

more details, please

Are you guys talking about some links, or all links?

For example do the links in the navigation block work? Or tabs at the top of a page?

If those links do work, then which modules are producing the bad links?

A little more info

I have had some success with this issue by altering the replacement patterns in canvas.module.

Beginning on line 567:
replaced: $replacements[] = "=\"/{$fb_app->canvas}/$1app{$fb_app->id}_";
with: $replacements[] = "=\"/{$fb_app->canvas}/$1app{$fb_app->id}_";

On line 569:
replaced: $replacements[] = "=\"/{$fb_app->canvas}/";
with: $replacements[] = "=\"{$fb_app->canvas}/[MY APP'S CANVAS PATH]/";

In both cases, the leading '/' were causing issues because they were creating relative url's beginning with '//'. In the second line, I needed to include the path I created for the canvas. So for instance, if my canvas path is:
http://apps.facebook.com/mytest1000/
the second line would be:
$replacements[] = "=\"{$fb_app->canvas}/mytest1000/";

I'm certain this isn't the best method, and there should be some way to grab that info so you're locking yourself into a single app. There's a better way without a doubt, but hopefully this will help point to the issue.

correction, i think

Beginning on line 567:
replaced: $replacements[] = "=\"/{$fb_app->canvas}/$1app{$fb_app->id}_";
with: $replacements[] = "=\"{$fb_app->canvas}/$1app{$fb_app->id}_";

CORRECTION

Meant to post:

Beginning on line 567:
replaced: $replacements[] = "=\"/{$fb_app->canvas}/$1app{$fb_app->id}_";
with: $replacements[] = "=\"{$fb_app->canvas}/$1app{$fb_app->id}_";

By the way, amazing module.

By the way, amazing module. Can't wait to see how this matures as the Facebook api's mature.

Having the same issue

Have been playing around with this for a few days and seem to be having the same issue.

(And yes I have read the Readme.txt file from beginning to end, and I enjoyed the fact that you asked people to prove that to you.)

I can get Drupal to output absolute URLs everywhere which will allow the Application to link back to the Drupal site, but this doesn't really allow for keeping your app running inside of the Facebook page (which is somewhat the point).

@Philipp if you just want to output absolute URLs there are a couple of ways to this, not sure what the best/proper way is, but if you open the file /includes/common.inc and go to line 1373 change:

'absolute' => FALSE,
to:
'absolute' => TRUE,

That will make Drupal print absolute URLs throughout your entire site, which will also work on your Canvas pages, doesn't really solve the issue though.

Same here

We're seeing the same url issue with 6.10. Drupal prepends node paths with '/' when defining $node_url, but facebook doesn't seem to like that. Looking into the replacement patterns.