在本文中,您将会了解到关于使用Java的FacebookAPI和FacebookConnect?的新资讯,同时我们还将为您解释javax.faces的相关在本文中,我们将带你探索使用Java的Face
在本文中,您将会了解到关于使用Java的Facebook API和Facebook Connect?的新资讯,同时我们还将为您解释javax.faces的相关在本文中,我们将带你探索使用Java的Facebook API和Facebook Connect?的奥秘,分析javax.faces的特点,并给出一些关于#import
- 使用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)
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 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应用程序
测试了:
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"); } } });
解决方法
如果您没有正确输入应用程序密钥哈希,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
这是我迄今为止所尝试过的
>将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.
解决方法
你最接近你的#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的实例源码
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); } }); } }
@Override public void logout() { SessionEvents.onlogoutBegin(SessionListenerType.FACEBOOK_SESSION_LISTENER); AsyncFacebookRunner asyncRunner = new AsyncFacebookRunner(this.facebook); asyncRunner.logout(activity.getApplicationContext(),new logoutRequestListener()); }
@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(); }
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; }
@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
本文标签: