0
내 해시 키와 내가 Facebook에서 말한 모든 작업을 확인했습니다. 내 페이스 북 facebook.isSessionValid() 작동하지 않음은 내가 사용한 코드 아래에서 찾으십시오. 처음 사용자가 저장소에 sharepreference에 토큰을 기록하고 토큰을 사용하여 얻을Facebook sdk + facebook.isSessionValid() 작동하지 않음
package com.maintab;
import java.io.IOException;
import java.net.MalformedURLException;
import org.apache.http.auth.MalformedChallengeException;
import org.json.JSONObject;
import com.example.tesfragement.*;
import com.facebook.android.DialogError;
import com.facebook.android.Facebook;
import com.facebook.android.Facebook.DialogListener;
import com.facebook.android.FacebookError;
import com.facebook.android.Util;
import android.os.Bundle;
import android.app.Fragment;
import android.service.textservice.SpellCheckerService.Session;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.Toast;
public class Login extends Fragment {
View view;
ImageView loginbuttton,logoutbutton;
String app_id="*************";
Facebook fb=new Facebook(app_id);
public Login() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
view= inflater.inflate(R.layout.login, container, false);
loginbuttton=(ImageView) view.findViewById(R.id.loinbutton);
loginbuttton.setOnClickListener(btnClick);
//here change the image according to session
logoutbutton=(ImageView)view.findViewById(R.id.greenbutton);
updateButtonImage();
//here facebook cording will go
//facebook fb=new Login()
return view;
}
private void updateButtonImage()
{
if(fb.isSessionValid())
{
loginbuttton.setImageResource(R.drawable.log_out);
}
else
loginbuttton.setImageResource(R.drawable.login_with_facebook);
}
ImageView.OnClickListener btnClick=new ImageView.OnClickListener()
{
@SuppressWarnings("deprecation")
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// my code begins here
if(fb.isSessionValid())
{
//button close our session -log out of facebook
Toast.makeText(getActivity(), "Session is valid", Toast.LENGTH_LONG);
try{
fb.logout(getActivity());
updateButtonImage();
}
catch(MalformedURLException e)
{
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
{
//login to facebook
fb.authorize(getActivity(),new DialogListener() {
@Override
public void onFacebookError(FacebookError e) {
// TODO Auto-generated method stub
Toast.makeText(getActivity(), "fbError",Toast.LENGTH_LONG).show();
}
@Override
public void onError(DialogError e) {
// TODO Auto-generated method stub
Toast.makeText(getActivity(), "onError",Toast.LENGTH_LONG).show();
}
@Override
public void onComplete(Bundle values) {
// TODO Auto-generated method stub
updateButtonImage();
}
@Override
public void onCancel() {
// TODO Auto-generated method stub
Toast.makeText(getActivity(), "oncancel",Toast.LENGTH_LONG).show();
}
});
}
}
};
}
당신이 mPrefs을 설명해주십시오 수 mPrefs 변수 – VenushkaT
mPrefs을 기쁘게 부분에 기록 sharePreference의 목적은 건너 뛸 값을 키 값 쌍으로 저장합니다. exp editor.putString ("access_token", facebook.getAccessToken()); 여기 키는 –
키를 전달하여 애플리케이션에서 어디에서나 액세스 할 수 있습니다. 코드를 입력하십시오. 매우 감사합니다. – VenushkaT