2012-10-04 5 views
1

어쨌든 그 까다로운 질문 어쨌든 :페이스 북의 애플 리케이션 벽 게시물 리디렉션

나는 외부 서버에서 실행되는 페이스 북 응용 프로그램이 있습니다. 이 페이지에 통합되어

http://mydomain.com/myapp/ 

내 캔버스 URL이 말을 할 수 있으며

사용자가 공유 할 수 있습니다 123456789 내 응용 프로그램 ID

어디는 ​​

http://facebook.com/mypage/app_123456789 

같은 URL을 사용하여 응용 프로그램을 도달 할 수있다 벽에있는 어떤 것들, 그리고 그 공유는 내 앱으로 돌아 오는 URL을 포함합니다.

는 그래서

http://mydomain.com/myapp/content/1 

그는 벽 게시물에 클릭하면 사용자가가는 곳은 같은 URL을 가지고, 내가 공유 콘텐츠가 있다고 할 수 있습니다.

이제 내 문제는 분명히 내가이 URL을 원한다는 것입니다. 페이지로 돌아 가기.

http://facebook.com/mypage/app_123456789 

에 모든 것을 재 쉽게하지만 사용자가 아닌 공유 구체적인 내용에, 내 응용 프로그램의 메인 페이지에 저를합니다.

이 방법이 있습니까? 마찬가지로 페이스 북에 매개 변수를 전달하여로드 할 페이지를 지정할 수 있습니다.

+0

일회용 앱입니까, 아니면 여러 개의 Facebook 페이지로 리디렉션해야합니까? – logan

+0

안녕하세요, 한 페이지 만 있지만 응용 프로그램 자체에는 여러 URL이있는 여러 콘텐츠가 있으므로 분명히 사용자는 특정 URL로 이동해야하는 특정 공유 항목을보고 싶어합니다. 이는 캔버스 응용 프로그램과 페이지 응용 프로그램 모두에서 문제입니다. – Opi

+0

캔버스 응용 프로그램 (페이지 응용 프로그램/페이지 탭 제외)에서는 경로 만 사용할 수 있습니다. 즉 :'https : // apps.facebook.com/onthefarm/myotherpage /'또는'https : // apps.facebook.com/onthefarm /'또는'https://apps.facebook.com/onthefarm/mybest/page1 ' – logan

답변

1

예! Facebook은 응용 프로그램의 캔버스 페이지로 리디렉션 될 때 제공 한 이전 매개 변수를 전달하지 않지만 특정 방식으로 매개 변수를 조작하면 해당 매개 변수에 액세스 할 수 있습니다.

다음과 같은 형식으로 모든 매개 변수를 통과해야합니다

- 당신은 당신의 캔버스 URL에 도달하면

https://apps.facebook.com/yourapp?app_data=key1$value1,key2$value2,... 

, 당신은 signed_request 내에서 app_data의 데이터를 검색 할 수 있습니다.

key1$value1,key2$value2 

가 지금은 키와 값의 배열로 해당 문자열을 구문 분석의 단지 문제입니다 - 당신이 매개 변수의 내용을 한 후에는 다음과 같이해야한다. 아래의 코드에서 볼 수 있듯이 매개 변수와 키/값 쌍을 구분할 수 있습니다.

이 특수한 예에서는 키와 값을 구분하는 데 dolar 문자를 선택했습니다. 이 단계에서
// initialize parameter array 
$getParams = array(); 
$signedRequest = $facebook->getSignedRequest(); 
// separate each parameter 
$app_data = explode(",",$signedRequest['app_data']); 
foreach ($app_data as $param_key => $param_value) { 
    // separate each key/value pair 
    list($key,$value) = explode("$",$param_value); 
    $getParams[$key] = $value; 
} 

이제 응용 프로그램에 매개 변수를 전달할 수 있다는 것을이

Array(
    'key1'=>'value1', 
    'key2'=>'value2' 
) 

처럼 보일 것이다 당신의 $getParams 배열, 당신은에 전달 된 데이터에 따라 보여주기 위해 어떤 콘텐츠를 결정할 수 있습니다 참조 URL에서 가져옵니다.

+1

Lix, 고마워요! :) – Opi

+0

대단히 환영합니다! 도와 줄 수있어서 기뻐! – Lix

관련 문제