GVKun编程网logo

使用Java的Facebook API和Facebook Connect?(javax.faces)

21

在本文中,您将会了解到关于使用Java的FacebookAPI和FacebookConnect?的新资讯,同时我们还将为您解释javax.faces的相关在本文中,我们将带你探索使用Java的Face

在本文中,您将会了解到关于使用Java的Facebook API和Facebook Connect?的新资讯,同时我们还将为您解释javax.faces的相关在本文中,我们将带你探索使用Java的Facebook API和Facebook Connect?的奥秘,分析javax.faces的特点,并给出一些关于#import "facebookSDK/FacebookSDK.h file not found"、Android facebook登录无法使用已安装的Facebook应用程序、asp.net – 在本地主机上开发Facebook Connect Javascript API、com.facebook.android.AsyncFacebookRunner的实例源码的实用技巧。

本文目录一览:

使用Java的Facebook API和Facebook Connect?(javax.faces)

使用Java的Facebook API和Facebook Connect?(javax.faces)

Facebook API和Facebook Connect的新功能。

在Google Code上找到了Facebook Java API开源库…

我真的很高兴有一个用Java预先编写的API!

对编写服务器端Java层感兴趣,该层使用REST能够访问用户的Facebook朋友列表,他们的墙,在网络上向他们发送消息等。

下载二进制文件,不幸的是,我解压缩时没有找到任何示例或演示代码。

问题:

(1)该图书馆是否支持Facebook Connect?

(2)开始使用Facebook Connect与服务器端Java的最佳方法是什么?

(3)由于我正在构建中间件,因此是否仍需要在在线Facebook Developer页面上创建示例应用程序?

(4)为了开始使用,我应该在pom.xml中添加什么(我是Maven中的新手)?

答案1

小编典典

据我所知,该库已损坏。我无法通过身份验证来使用最新版本。
在寻找替代品时,我发现了“ TinyFBTagLibrary”
http://www.socialjava.com/-
是的,它只需要运行大约十亿个额外的库,但是它提供了一种简单的方法来在Java中执行facebook API调用, ISNT
BROKEN(据我所知再次)。我的建议是忽略所有在jsp中使用的预定义标签,并向下滚动到底部以查看在需要获取信息时如何使用TinyFBClient.call/getResponse。

#import <FacebookSDK/FacebookSDK.h>

#import "facebookSDK/FacebookSDK.h file not found"

第一种可能: 从window下上传到mac 下 facebook sdk出错!【这个是系统的错误,只能从其他地方拷贝 FacebookSDK.framework 文件夹 就ok】,下图是正常状态,【不正常的状态下,这几个文件直接是物理文件了】

第二种可能 ,设置读取路径错误


在mac下 project下找到build setting ,再找 searchPath,点击Framework search paths 设置路径即可

"$(SRCROOT)/xxx/xxx/FacebookSDK.framework"

Android facebook登录无法使用已安装的Facebook应用程序

Android facebook登录无法使用已安装的Facebook应用程序

我已经设置了简单的Facebook登录.对于 Android 2.3.6,所有功能都应该如此,用户获得提示登录对话框,输入数据和应用程序继续.我以为这是android版本的错误,但是当手机上安装了Facebook应用程序时,会发现登录不起作用!

测试了:
galaxy Ace 2.3.6
HTC Desire 4.1.2
银河笔记4.1.2
Android模拟器4.1.2

即使Facebook的样品也不工作!

每次应用执行时 – else {
Log.d(“SESSION NOT OPENED”,“SESSION NOT OPENED”);
}

似乎会话没有打开,但为什么呢?按照本指南 – https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/

码:

Session.openActiveSession(this,true,new Session.StatusCallback() {

        @Override
        public void call(final Session session,SessionState state,Exception exception) {

            if (session.isOpened()) {

                Request.executeMeRequestAsync(session,new Request.GraphUserCallback() {

                    @Override
                    public void onCompleted(GraphUser user,Response response) {
                        if (user != null) {
                            Log.d("Access_token",session.getAccesstoken());
                        }
                    }
                });
            } else {
                Log.d("SESSION NOT OPENED","SESSION NOT OPENED");
            }
        }
    });

解决方法

查看步骤4: https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/的底部

如果您没有正确输入应用程序密钥哈希,Facebook通过WebView弹出窗口登录(如果该应用未安装)仍然可以正常工作,但是通过本机的Facebook应用程序登录将不会.

您应该在LogCat中看到这个异常:

com.facebook.http.protocol.ApiException: remote_app_id does not match stored id

Facebook SDK打印其例外,如果还有其他问题,请检查.

asp.net – 在本地主机上开发Facebook Connect Javascript API

asp.net – 在本地主机上开发Facebook Connect Javascript API

我正在尝试编写一些 JavaScript函数来与Facebook流集成.但是,如果您直接在实时服务器上进行开发,Facebook可以访问他们要求我在www.mydomain.com/xd_receiver.htm上安装的xd_receiver.htm文件,它们似乎仍然可以工作.但是,大家都可以同意,在实时服务器上开发非常重要.

这是我迄今为止所尝试过的

>将xd_receiver.htm放在实时服务器上,并在我的开发服务器上运行我的脚本,希望API Key能够告诉Facebook服务器在我的实时服务器上寻找xd_receiver.htm …没有运气
>使用Facebook注册两个API密钥:一个指向127.0.0.1的开发人员指针和一个指向我的现场的活动.这里的理论是,如果xd_receiver.htm只需要在本地,那么它会发现它通过127.0.0.1 …没有运气

有没有人想出一个办法呢?他们不能指望我们开发我们的Facebook应用程序纯粹生活没有开发沙箱.

一些背景信息值得一提:使用ASP.NET与VB,但希望纯粹使用Javascript.

解决方法

绝对有可能使用本地的xd_receiver.htm文件.我是一个交易的Facebook应用程序开发人员,我有几十个设置.

你最接近你的#2以上的正确答案.执行此操作的方法是创建两个版本的应用程序.如果我正在制作“MyApp”,我可能会有两个Canvas页面的“myapp”和“myapp-dev”页面以及相应的“www.myapp.com”和“192.168.1.1”的Canvas回调URL.每个都是一个单独的Facebook应用程序,具有自己的API密钥等.

apps.facebook.com/myapp将转到我的实时服务器,而apps.facebook.com/myapp-dev将转到我的本地开发机器.当然,您必须确保Facebook可以访问您的开发机器.

但是,事情应该从那里起作用.您甚至不需要不同版本的xd_receiver.htm文件,因为每个应用程序的文件内容总是相同的.只要你的FB.XdComm.Server.init(“/ xd_receiver.htm”);行点正确的文件,它应该工作.

我在配置文件中管理API密钥和路径,并且每个应用程序都有一个配置文件,无论是开发人员还是生产应用程序.这使得在应用页面上输出正确的键和路径变得容易.

您可以将开发应用程序保持在沙箱模式,并在本地计算机上进行所有工作.

com.facebook.android.AsyncFacebookRunner的实例源码

com.facebook.android.AsyncFacebookRunner的实例源码

项目:facebook-android-sdk    文件:Tests.java   
public void onComplete(Bundle values) {
    final String postId = values.getString("post_id");
    if (postId != null) {
        Log.d("Facebook-Example","Dialog Success! post_id=" + postId);
        new AsyncFacebookRunner(authenticatedFacebook).request(postId,new TestPostRequestListener());
    } else {
        Tests.this.runOnUiThread(new Runnable() {
            public void run() {
                wallPostText.setText("Wall Post Failure");
                wallPostText.setTextColor(Color.RED);
            }
        });
    }
}
项目:Socialite    文件:FacebookConnector.java   
@Override
public void logout() {
    SessionEvents.onlogoutBegin(SessionListenerType.FACEBOOK_SESSION_LISTENER);
    AsyncFacebookRunner asyncRunner = new AsyncFacebookRunner(this.facebook);
    asyncRunner.logout(activity.getApplicationContext(),new logoutRequestListener());
}
项目:kaorisan    文件:LoginActivity.java   
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    loginActivity = this;
    sqliteDatabaseAdapter.setContext(this);

    checkGooglePlayServices();

    mPlusClient = new PlusClient.Builder(this,this,this)
    .setVisibleActivities("http://schemas.google.com/AddActivity","http://schemas.google.com/BuyActivity").setScopes(Scopes.PLUS_LOGIN,Scopes.PLUS_PROFILE).build();

    btnLoginGoogle = (Button) findViewById(R.id.btn_login_google);
    initGoogleButton();

    genKeyHash();
    resource = getResources();

    DebugLog.logd("On create");

    // Create the Facebook Object using the app id.
    if (Utility.mFacebook == null) {
        Utility.mFacebook = new Facebook(APP_ID);
    }
    // Instantiate the asynrunner object for asynchronous api calls.
    if (Utility.mAsyncRunner == null) {
        Utility.mAsyncRunner = new AsyncFacebookRunner(Utility.mFacebook);
    }

    SessionStore.restore(Utility.mFacebook,this);

    SessionEvents.addAuthListener(authenListener);
    SessionEvents.addlogoutListener(logoutListener);

    Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);

    btnLoginFaceBook = (Button) findViewById(R.id.btn_login_facebook);
    initFacebookButton();

    SessionEvents.addAuthListener(mSessionListener);
    SessionEvents.addlogoutListener(mSessionListener);

    if (Utility.mFacebook.isSessionValid() && islogout == 0 && currentSocial == Social.FACEBOOK) {
        DebugLog.logd("On facebook Create");
        if (Utils.checkInternetConnect(this)) {
            requestGetUserData();
        }
    }

    if (currentSocial == Social.GOOGLE && islogout == 0) {
        DebugLog.logd("On Google Create");
        mPlusClient.connect();
    }
    checklogout();

}
项目:kaorisan    文件:LoginActivity.java   
private void checklogout() {

        if (islogout == 1 && NetworkUtil.NETWORK_STATE != NetworkUtil.TYPE_NOT_CONNECTED) {
            if (currentSocial == Social.FACEBOOK) {
                if (Utility.mFacebook.isSessionValid()) {
                    SessionEvents.onlogoutBegin();
                    AsyncFacebookRunner asyncRunner = new AsyncFacebookRunner(Utility.mFacebook);

                    try {
                        if (showProcess != null) {
                            if (showProcess.isShowing()) {
                                showProcess.dismiss();
                            }
                            showProcess = null;
                        }

                        showProcess = new ProgressDialog(this);
                        showProcess.setCancelable(false);
                        showProcess.setTitle(getResources().getString(R.string.txt_logout));

                        showProcess.show();
                    } catch (Exception ex) {
                        DebugLog.logd("checklogout ??? Do not kNow what happen with show process," +
                                "maybe the facebook already hace show process");
                    }
                    asyncRunner.logout(this,new logoutRequestListener());
                }

                if(TaskActivity.taskActivity != null){
                    TaskActivity.taskActivity.finish();
                }
            } else if (currentSocial == Social.GOOGLE) {
                DebugLog.logd("On google logout");
                mPlusClient.disconnect();

            }

            if(CacheData.getInstant().getTokenKaorisan() != null){
                if(!CacheData.getInstant().getTokenKaorisan().isEmpty()){
                    DebugLog.logd("Delete token kaorisan in sqlite");
//                  UserDao.deleteUser(CacheData.getInstant().getTokenKaorisan());
                    UserDao.setCurrentUser("","0","","");
                }
            }
        }

        if(CacheData.getInstant().getCurrentUser() != null){
            if(CacheData.getInstant().getCurrentUser().getPushToken() != null && islogout == 1){
                if (GCMRegistrar.isRegisteredOnServer(TaskActivity.taskActivity)) {
                    ServerUtilities.unregister(TaskActivity.taskActivity,CacheData.getInstant().getCurrentUser().getPushToken());
                    Log.i(TAG,"Unregister server");
                } else {
                    // This callback results from the call to unregister made on
                    // ServerUtilities when the registration to the server Failed.
                    Log.i(TAG,"Ignoring unregister callback");
                }
            }
        }

        Utils.resetCacheData();
        islogout = 0;
    }
项目:IPRJapp    文件:Tutorial_1.java   
@SuppressWarnings("deprecation")
@Override
   public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);        

        if (savedInstanceState != null)

            TutoRes = savedInstanceState.getInt("TutoRes");
        facebook = new Facebook(APP_ID);
        AsyncFacebookRunner   mAsyncRunner = new AsyncFacebookRunner(facebook);
        //loginFacebook();

requestwindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.tutorial_1);
//setLogin();



Session.openActiveSession(this,true,new Session.StatusCallback() {


    @Override
    public void call(final Session session,SessionState state,Exception exception) {
        if (session.isOpened()) {

            Request.newMeRequest(session,new Request.GraphUserCallback() {

                  @Override
                  public void onCompleted(GraphUser user,Response response) {

                      if (user != null) {

                        //welcome = (TextView) findViewById(R.id.welcome);                      
                        Userid = user.getId();
                        User_name= user.getFirstName();


                        }
                  }
                }).executeAsync();
            }
    }
  }); 



final Button  Button = (Button) findViewById(R.id.button1);

Button.setonClickListener(new View.OnClickListener() {

       @Override
      public void onClick(View v) {

        if(Userid != null && User_name != null){

             Intent intent = new Intent();
             intent.setClass(Tutorial_1.this,Tutorial_2.class);
             db.addUsuario(new Usuario(User_name,Userid));
            startActivity(intent);
             finish();


        }

        else {

            Toast.makeText(getApplicationContext(),"Aguarde o carregamento dos dados do perfil do Facebook",Toast.LENGTH_SHORT).show();

        }

       }

});
   }

关于使用Java的Facebook API和Facebook Connect?javax.faces的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于#import "facebookSDK/FacebookSDK.h file not found"、Android facebook登录无法使用已安装的Facebook应用程序、asp.net – 在本地主机上开发Facebook Connect Javascript API、com.facebook.android.AsyncFacebookRunner的实例源码等相关内容,可以在本站寻找。

本文标签: