2012-04-01 2 views
2

내가 좋아하는 링크가 보인다 내 페이지 탭 앱, 내부의 "멀티 친구 요청 선택기"을 사용하여 친구 요청을 보낼 수있는 페이지 탭 앱에서 요청을 보내기 : 내 친구가 내 요청을 수신페이스 북 SDK :

https://www.facebook.com/<my_page_name>/app_<my_app_id> 

하고, "동의"를 클릭하십시오. 그것은 페이스 북 앱의 실제 링크로 전달됩니다 :

https://apps.facebook.com/<my_app_name>/?fb_source=request&request_ids=<an_request_id> 

이것은 페이지 탭 안에 더 이상 존재하지 않습니다. request_ids를 보관해야하는 동안 2 단계 대신 1 단계로 전달할 수 있습니까? 방금 header('Location: url'); 전달을 수행합니까?

p.s. 타임 라인이 이미 사용 중입니다.

답변

4

예. 은 항상이며 캔버스 URL로 리디렉션되기 때문에 페이지 URL로 전달해야합니다.

요청 ID를 전달하려면 app_data 필드를 사용할 수 있습니다. 따라서 https://www.facebook.com/<my_page_name>/app_<my_app_id>으로 리디렉션하는 대신 https://www.facebook.com/<my_page_name>/app_<my_app_id>?app_data=requestids으로 리디렉션합니다. 여기에서 requestids는 실제 값은 (캔버스가 가져 오는 쉼표로 구분 된 목록)입니다.

app_data은받은 페이지 signed_request의 일부로 페이지 탭 앱에서 사용할 수 있습니다. docs에서

:

는 또한, 앱이 또한 app_data 매개 변수가 당신의 탭에로드 된 URL에 원래의 쿼리 문자열에 설정된 경우 signed_request의 일환으로 app_data라는 문자열 매개 변수를 받게됩니다. 위의 Shop Now 링크의 경우 'https://www.facebook.com/YourPage?v=app_1234567890 & app_data = any_string_here'와 같이 표시 될 수 있습니다. 이를 사용하여 링크 생성을 제어하는 ​​경우 렌더링 한 내용을 사용자 정의 할 수 있습니다.

+1

거의 완벽한 답변입니다. 리디렉션 링크는 다음과 같아야합니다.이 경우에는'https://www.facebook.com//app_ ? app_data = requestids' 및 PHP'header ('Location : url')'이 작동하지 않아야합니다. 클라이언트 측 JavaScript 리디렉션을 사용해야합니다. – Raptor

+1

기꺼이 도와주었습니다. 헤더 코즈에 관해서는 언급하지 않았습니다. 때때로 (브라우저에 출력물을 보내지 않았을 때), afaik. URL, 나는이 형식에 대해 그렇게 확신하지 못했습니다. 이전 스타일 인'https : //www.facebook.com/YourPage? v = app_1234567890 & app_data = any_string_here'에 익숙합니다. 어쨌든 고마워, 나도 뭔가를 배웠다. –

+0

참고로 두 가지 형식의 URL이 모두 작동하지만 Facebook이 타임 라인의 기본 링크 형식이므로 Facebook이 내 버전을 선호하는 것으로 보입니다. – Raptor