0

Facebookの友達を招待する必要があるAndroidアプリケーションを使用しています。以下のコードを使用します

WebDialog requestsDialog = (
                new WebDialog.RequestsDialogBuilder(FacebookLogin.this,
                    Session.getActiveSession(),
                    params))
                    .setOnCompleteListener(new OnCompleteListener() {

                        @Override
                        public void onComplete(Bundle values,
                            FacebookException error) {
                            if (error != null) {
                                if (error instanceof FacebookOperationCanceledException) {
                                    Toast.makeText(FacebookLogin.this.getApplicationContext(), 
                                        "Request cancelled", 
                                        Toast.LENGTH_SHORT).show();
                                } else {
                                    Toast.makeText(FacebookLogin.this.getApplicationContext(), 
                                        "Network Error", 
                                        Toast.LENGTH_SHORT).show();
                                }
                            } else {
                                final String requestId = values.getString("request");
                                if (requestId != null) {
                                    Toast.makeText(FacebookLogin.this.getApplicationContext(), 
                                        "Request sent",  
                                        Toast.LENGTH_SHORT).show();
                                } else {
                                    Toast.makeText(FacebookLogin.this.getApplicationContext(), 
                                        "Request cancelled", 
                                        Toast.LENGTH_SHORT).show();
                                }
                            }   
                        }

                    })
                    .build();
            requestsDialog.show();

ただし、「if (error instanceof FacebookOperationCanceledException)」行で「互換性のない条件付きオペランド タイプ FacebookException および FacebookOperationCanceledException」という構文エラーがスローされます。何か不足していますか?

4

1 に答える 1

0

apprequestsをに配置する必要があると思いますWebDialog.RequestsDialogBuilder

これは私がそれを使用する方法です:

dialog = new WebDialog.Builder(activity, Session.getActiveSession(), "apprequests", params).
    setOnCompleteListener(new WebDialog.OnCompleteListener()
    {
        @Override
        public void onComplete(Bundle values, FacebookException error)
        {
            if (error != null && !(error instanceof FacebookOperationCanceledException))
            {
                // error
            }
            else
            {
                // good
            }
            dialog = null;
        }
    }).build();

Window dialogWindow = dialog.getWindow();
dialogWindow.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

dialog.show();

または、さらに、このSimpleFacebookライブラリを使用すると、Facebook SDK 3.0 よりも単純な API で作業することで作業が大幅に楽になります。このライブラリは、Facebook SDK 3.0 をラップします。

そして、これはこのライブラリを使用して招待する方法です:

OnInviteListener onInviteListener = new SimpleFacebook.OnInviteListener()
{

    @Override
    public void onFail()
    {
        // insure that you are logged in before inviting
        Log.w(TAG, "Failed to invite");
    }

    @Override
    public void onException(Throwable throwable)
    {
        Log.e(TAG, "Bad thing happened", throwable);
    }

    @Override
    public void onComplete()
    {
        Log.i(TAG, "Invitation was sent");
    }
};

mSimpleFacebook.invite(MainActivity.this, "I invite you to use this app", onInviteListener);

うまくいけば、私はあなたを助けることができます.

于 2013-07-31T17:43:35.340 に答える