2012-01-29 3 views
5

How can I construct a link to view a message on facebook.com if I have the message id 질문이 있지만 대답이 없습니다./my/inbox API 엔드 포인트를 사용하여 스레드의 ID를 얻었으며이 스레드를 보여주는 Facebook 자체로 사용자를 리디렉션해야합니까? URL은 어떻게 구성해야합니까? http://www.facebook.com/messages/?action=read&tid=id.143666952390138과 같은 URL이있는 것 같습니다. 여기서 thread id는 끝에있는 번호입니다. 그러나 이전 규칙이 작동하지 않는 http://www.facebook.com/messages/?action=read&tid=27726d81656e4c07ae5654116cccb724과 같은 낯선 URL도 있습니다. 그래프 API 또는 FQL을 사용하여 스레드 URL을 얻는 방법이 있습니까?스레드 ID를 알고있는 메시지 스레드 URL을 얻는 방법은 무엇입니까?

답변

8

ID가 문자열 객체 (아마도 guid) 인 경우 Facebook의 이전 메시지 시스템 저장소 구조에서 가져온 것입니다. 다음, 스레드 ID가 긴 (INT64 /에서 BigInt)입니다

경우 : 이제 그들은 그래서 당신은 매우 쉽게 확인이 새로운

로 마이그레이션 할 옛 사람을 필요로하는 새로운 저장 구조에 업데이트되었습니다 새 스레드를 가지고 스레드 ID는 문자열 당신이 나이가 스레드를 가지고

http://www.facebook.com/messages/?action=read&tid=THREAD_ID

많은 프로그래밍 LANGU를 사용할 수있는 다음의 경우 http://www.facebook.com/messages/?action=read&tid=id.THREAD_ID

을 사용할 수 있습니다 연령대는 가치 유형을 확인하는 자체 양식을 가지고 있습니다.

var threadId = (string)data.thread_id; 
var longVal = 0L;  
var isLong = Int64.TryParse(threadId, out longVal); 
var threadUrl = (isLong) ? 
    "http://www.facebook.com/messages/?action=read&tid=id." + threadId : 
    "http://www.facebook.com/messages/?action=read&tid=" + threadId; 
+1

모두가이 간단한 있다면 그것은 좋은 것입니다,하지만 27726d81656e4c07ae5654116cccb724에 대한 그래프 API에서/나 /받은 편지함을 요청할 때 (ID가 어떻게해야 제대로 공개 페이스 북의 스레드 페이지) 스레드가 I 64 비트 "ID를 얻을 ":"1956133107397 ". 그리고/me/inbox (64 비트 중 하나)의 ID를 사용하여 스레드 페이지 URL을 구성하면 "No message found"오류가 발생합니다. 그래프 API를 사용하여 페이스 북에서 더 긴 16 진수 ID를 검색 할 수 없습니다. – vian

+1

나는 당신이 그 가치에 대해 무엇을했는지 모르지만 항상 노력한 모든 것은 항상 위에 게시 된 코드를 사용하여 작업했습니다. 물론'read_mailbox' 권한을 가진 ** 유효한 사용자 접근 토큰 **이 있어야합니다. 참조 : https://developers.facebook.com/docs/reference/api/permissions – DMCS

+0

나는 read_mailbox 권한이 있으며 작동하는지 확인했지만 몇 가지 이유 때문에 내가 사용할 때만 긴 16 진수 문자열 ID를 얻을 수 있습니다/내/스레드 연결, 내가/날/휴지통 ID를 얻을 작업을 사용할 때. 사용자가 응용 프로그램의 개발자가 아니더라도/me/threads를 사용하는 것이 더 쉬울 것입니다. – vian

관련 문제