Facebook sdk를 사용하여 Facebook에 로그인하려고합니다. 로그인하지 않고 대화 상자를 열지 만 자격 증명을받지 못하면 작동하지 않습니다. Facebook 앱을 설치하면 Facebook 앱이 열리지 만 로그인이 완료되지 않아 토큰과 사용자 ID를 얻을 수 없습니다. 나는 벽에 메시지를 게시 할 수도 없다. 그러나 "메시지가 성공적으로 표시되었습니다"라는 축배는 표시되지만 Facebook 벽에는 게시되지 않습니다. 코드 :Facebook sdk 3.0.1이 제대로 작동하지 않습니다.
public boolean isSession() {
access_token = sp.getString(TOKEN, "x");
expires = sp.getLong(EXPIRES, -1);
Log.d("TAG", access_token);
if (access_token != null && expires != -1) {
facebook.setAccessToken(access_token);
facebook.setAccessExpires(expires);
}
return facebook.isSessionValid();
}
private class LoginDialogListener implements DialogListener {
@Override
public void onComplete(Bundle values) {
Log.d("TAG", "LoginONComplete");
token =facebook.getAccessToken();
token_expires = facebook.getAccessExpires();
Log.d("TAG", "AccessToken: " + token);
Log.d("TAG", "AccessExpires: " + token_expires);
savePrefs3(EXPIRES,token_expires);
savePrefs(TOKEN,token);
mAsyncRunner.request("me", new IDRequestListener());
}
@Override
public void onFacebookError(FacebookError e) {
Log.d("TAG", "FacebookError: " + e.getMessage());
}
@Override
public void onError(DialogError e) {
Log.d("TAG", "Error: " + e.getMessage());
}
@Override
public void onCancel() {
Log.d("TAG", "OnCancel");
}
}
private class IDRequestListener implements RequestListener {
@Override
public void onComplete(String response, Object state) {
try {
Log.d("TAG", "IDRequestONComplete");
Log.d("TAG", "Response: " + response.toString());
JSONObject json = Util.parseJson(response);
Uid = json.getString("id");
savePrefs("UID", Uid);
final String name = json.getString("name");
} catch (JSONException e) {
Log.d("TAG", "JSONException: " + e.getMessage());
} catch (FacebookError e) {
Log.d("TAG", "FacebookError: " + e.getMessage());
}
}
@Override
public void onIOException(IOException e, Object state) {
// TODO Auto-generated method stub
}
@Override
public void onFileNotFoundException(FileNotFoundException e, Object state) {
// TODO Auto-generated method stub
}
@Override
public void onMalformedURLException(MalformedURLException e, Object state) {
// TODO Auto-generated method stub
}
@Override
public void onFacebookError(FacebookError e, Object state) {
// TODO Auto-generated method stub
}
}
public void postToWall(String message){
Bundle parameters = new Bundle();
parameters.putString("message", message);
parameters.putString("description", "topic share");
try {
facebook.request("me");
String response = facebook.request("me/feed", parameters, "POST");
Log.d("Tests", "got response: " + response);
if (response == null || response.equals("") ||
response.equals("false")) {
showToast("Blank response.");
} else {
showToast("Message posted to your facebook wall!");
}
finish();
} catch (Exception e) {
howToast("Failed to post to wall!");
e.printStackTrace();
finish();
}
}
private void showToast(String message) {
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();
}
내가 잘못하고있는 곳을 알려주십시오. 토스트 앱을 표시 한 후 닫힙니다. 화면을 터치하면 fb 대화 상자를로드하는 중 앱 창이 다시로드되거나 다시 전환됩니다. 즉각적인 답장을 보내주세요.
세션을 사용하여 facebook wall pls help에 메시지를 올리는 방법. 세션을 사용하여 로그인하지만, 나는 세션을 사용하여 메시지를 게시하는 방법을 모른다. – Deepu
수정 된 답변을 확인하십시오. 그것이 도움이된다면 투표하십시오 ... –
@AbhishekAgarwal 해당 사용자가 로그인했는지 여부를 확인하는 방법 btn을 클릭하십시오. – Singhak