简体   繁体   English

Android Facebook SDK使用图形API

[英]Android facebook sdk use graph api

I read many guides on the net but I haven't understand yet how to use the Graph API in my android app. 我在网上阅读了许多指南,但还不了解如何在我的Android应用中使用Graph API。

I've this fragment where I have a Facebook login. 我在这个片段中有一个Facebook登录名。 The login works, but I don't know how to get the Facebook user and id 登录有效,但我不知道如何获取Facebook用户和ID

Here is my entire fragment : 这是我的整个片段:

public class SampleFragment extends Fragment {

    private static final String ARG_POSITION = "position";
    private WebView myWebView;
    private String LOG_TAG = "AndroidWebViewActivity";

    private int position;


    public static SampleFragment newInstance(int position) {
        SampleFragment f = new SampleFragment();
        Bundle b = new Bundle();
        b.putInt(ARG_POSITION, position);
        f.setArguments(b);
        return f;
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        new GraphRequest.GraphJSONObjectCallback() {
            @Override
            public void onCompleted(
                    JSONObject object,
                    GraphResponse response) {
                Log.i("**********", String.valueOf(object));
            }
        };

        position = getArguments().getInt(ARG_POSITION);
        View rootView = inflater.inflate(page, container, false);
        FloatingActionButton fab = (FloatingActionButton) rootView.findViewById(R.id.fabButton);
        final ProgressBarCircular progressBarCircular = (ProgressBarCircular) rootView.findViewById(R.id.progress);



        final WebView webView = (WebView) rootView.findViewById(R.id.webView);



        webView.getSettings().setBuiltInZoomControls(false);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setAllowContentAccess(true);

        webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
        webView.getSettings().setAllowFileAccessFromFileURLs(true);
        webView.getSettings().setAllowContentAccess(true);
        webView.getSettings().setAppCacheEnabled(true);


        webView.getSettings().setSupportZoom(false);
        webView.setInitialScale(0);

        LoginButton loginButton = (LoginButton) rootView.findViewById(R.id.login_button);
        loginButton.setReadPermissions("user_friends");
        // If using in a fragment
        loginButton.setFragment(this);
        // Other app specific specialization

        CallbackManager callbackManager = CallbackManager.Factory.create();


        loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                GraphRequest request = GraphRequest.newMeRequest(
                        loginResult.getAccessToken(),
                        new GraphRequest.GraphJSONObjectCallback() {
                            @Override
                            public void onCompleted(
                                    JSONObject object,
                                    GraphResponse response) {



                            }
                        });

                Bundle parameters = new Bundle();
                parameters.putString("fields", "id,name,link");
                request.setParameters(parameters);
                request.executeAsync();

                Log.i("LOGIN", "***************************");
                Log.i("LOGIN", String.valueOf(loginResult));





            }

            @Override
            public void onCancel() {

            }

            @Override
            public void onError(FacebookException exception) {

            }

        });





        switch (position) {
            case 0:



            Bundle webViewBundle1 = null;

            if (webViewBundle1 == null) {
                fab.setOnClickListener(new View.OnClickListener()
                {
                    @Override
                    public void onClick(View v)
                    {
                        webView.loadUrl("file:///android_asset/eventiresponsive.html");
                    }
                });
                webView.loadUrl("file:///android_asset/eventiresponsive.html");

                webView.setWebViewClient(new WebViewClient() {

                    public void onPageFinished(WebView view, String url) {
                        progressBarCircular.setVisibility(View.GONE);
                    }
                });
                webViewBundle1 = new Bundle();
                webView.saveState(webViewBundle1);
            }
           else {
                webView.restoreState(webViewBundle1);
            }

                loginButton.setVisibility(View.GONE);


                break;
            case 1:
                Bundle webViewBundle2 = null;

                fab.setOnClickListener(new View.OnClickListener()
                {
                    @Override
                    public void onClick(View v)
                    {
                        webView.loadUrl("file:///android_asset/fotostream.html");
                    }
                });


                loginButton.setVisibility(View.GONE);

                if (webViewBundle2 == null) {
                    webView.loadUrl("file:///android_asset/fotostream.html");

                    webView.setWebViewClient(new WebViewClient() {

                        public void onPageFinished(WebView view, String url) {
                            progressBarCircular.setVisibility(View.GONE);
                        }
                    });
                    webViewBundle2 = new Bundle();
                    webView.saveState(webViewBundle2);

                }
                else {
                    webView.restoreState(webViewBundle2);
                }


                break;
            case 2:
                Bundle webViewBundle3 = null;

                fab.setOnClickListener(new View.OnClickListener()
                {
                    @Override
                    public void onClick(View v)
                    {
                        webView.loadUrl("file:///android_asset/visualizzaordini.html");
                    }
                });


                loginButton.setVisibility(View.GONE);

                if (webViewBundle3 == null) {
                    webView.loadUrl("file:///android_asset/visualizzaordini.html");

                    webView.setWebViewClient(new WebViewClient() {

                        public void onPageFinished(WebView view, String url) {
                            progressBarCircular.setVisibility(View.GONE);
                        }
                    });
                    webViewBundle3 = new Bundle();
                    webView.saveState(webViewBundle3);

                }
                else {
                    webView.restoreState(webViewBundle3);
                }


                break;

            case 3:
                fab.setVisibility(View.GONE);
                loginButton.setVisibility(View.VISIBLE);
                break;
        }

        return rootView;
    }
    @Override

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        CallbackManager callbackManager = CallbackManager.Factory.create();
        callbackManager.onActivityResult(requestCode, resultCode, data);
        Log.i("LOGIN", "***************************");
        Log.i("LOGIN", String.valueOf(data));
    }


}

获得访问令牌后,您应该可以致电https://graph.facebook.com/v2.2/me?access_token=YOUR_ACCESS_TOKEN_HERE

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM