繁体   English   中英

如何使用自己的按钮登录Facebook SDK 4.3?

[英]How can I login Facebook SDK 4.3 with my own button?

我想使用自己的按钮登录Facebook SDK 4.3,但是遇到一些问题。 这是我的代码

public class MainActivity extends Activity {
    CallbackManager callbackManager;
    ShareDialog shareDialog;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        callbackManager = CallbackManager.Factory.create();
        Button bt= (Button)findViewById(R.id.button1);
        shareDialog = new ShareDialog(this);

        bt.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                openFB();
            }
        });
    }

    public void openFB() {
        //Login Callback registration
        LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                Toast.makeText(getApplicationContext(), "in LoginResult on success", Toast.LENGTH_LONG).show();

                //Login success - process to Post
                if (ShareDialog.canShow(ShareLinkContent.class)) {
                    String description = "description";
                    ShareLinkContent linkContent = new ShareLinkContent.Builder()
                            .setContentTitle("title")
                            .setContentDescription(description)
                            .setContentUrl(Uri.parse("http://google.com"))
                            .setImageUrl(Uri.parse("http://google.com"))
                            .build();

                    shareDialog.show(linkContent, ShareDialog.Mode.FEED);
                }

            }

            @Override
            public void onCancel() {
                Toast.makeText(getApplicationContext(), "in LoginResult on cancel", Toast.LENGTH_LONG).show();
            }

            @Override
            public void onError(FacebookException exception) {
                Toast.makeText(getApplicationContext(), "in LoginResult on error", Toast.LENGTH_LONG).show();
            }
        });

        LoginManager.getInstance().logInWithReadPermissions(this, "user_friends"); //Log in to FB
    }
}

我在最后一行收到此错误:

LoginManager类型的方法logInWithReadPermissions(Fragment,Collection)不适用于参数(MainActivity,String)

如您所知,还有另一个带有2个参数的logInWithReadPermissions方法是(Activity,Collection),但我不知道出现此错误。 请帮我解决这个问题!

对于与我遇到相同问题的人,只需更改最后一行,如下所示:

LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends")); //Log in to FB

而且应该没问题。

暂无
暂无

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

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