2011-06-13 3 views
2

페이스 북 그래프 API의 안드로이드 버전을 사용하고 있습니다. 그리고 로그인을 처리하기 위해 모든 권한이 작동하면 oncomplete를 호출하는 간단한 권한 부여 대화 상자를 수행합니다. 그러나 문제는 내가 사용자 ID를 필요로하므로 순차적으로 facebook.request("me")을 작성해야합니다. 권한 부여 논리에서 사용자 ID를 가져 오는 방법이 있습니까 ?? 번들 값만 acess_token과 expire_time을 반환합니다.첫 번째 통화에서 현재 페이스 북 ID를 가져옵니다.

facebook.authorize(this, permissions, new DialogListener() { 
     @Override 
     public void onComplete(Bundle values) { 
      login(); 
     } 

     @Override 
     public void onFacebookError(FacebookError error) {} 

     @Override 
     public void onError(DialogError e) {} 

     @Override 
     public void onCancel() {} 
    }); 

답변

1

좋아, 일부 검색 후 나는 access_token에 대한 정보를 발견했다. 한 가지 멋진 부분은 사용자 ID를 식별하는 하위 문자열을 포함한다는 것입니다. 액세스 토큰이 형식을 갖습니다

116122545078207|2.1vGZASUSFMHeMVgQ_9P60Q__.3600.1272535200-500880518|QXlU1XfJR1mMagHLPtaMjJzFZp4. 

사용자 ID는 처음 왼쪽 - 두 번째 |에서이다 식별, 그래서 토큰 위의 액세스의 사용자 ID는 부분 : 500880518

하는 잡아 그냥 다음과 같이하십시오 :

public void onComplete(Bundle values) { 
    String token = values.getString("access_token"); 
    String[] firstPart = token.split("\\|"); 
    String[] subPart = firstPart[1].split("-"); 
    long id = Long.parseLong(subPart[subPart.length - 1]); 
} 
0

간단히 말해서 user/me에게 전화해야합니다. 하지만 당신은 토큰이 필요하고 공인되지 않는 페이스 북에서 어떤 종류의 정보라도 얻기 위해서는 인증 정보를 반환하기 때문에 권한 부여 완료 콜 이후에 순차적으로 가질 수 있습니다. 당신이 묻는 것은 벽 게시물을 불러서 친구 목록을 얻고 싶다는 것입니다. 전화는 상호 연결되지 않습니다.

관련 문제