Articles of Facebook

如何使用Facebook android SDK在Facebook墙上发布,无需打开对话框

我正在使用facebook sdk并在SDK的示例帮助下开发了一个代码来登录并将access_token存储到数据库中 我有两个问题: 1)。 当我尝试从数据库中获取access_token并将其传递给Facebook时,它不允许我使用Facebook sdk给出的那个示例在墙上发布,为什么会这样? 2)。 我浏览了那个facebook.java代码,但我得到的是发布在墙上我必须打开一个对话框,因为没有其他方法可以立即传递我的消息并发布。 请告诉我对它的解决方案,或者当我想在不打开对话框的情况下在墙上张贴时,我应该打电话给我 mPostButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { String message = “Post this to my wall”; Bundle params = new Bundle(); params.putString(“message”, message); mAsyncRunner.request(“me/feed”, params, “POST”, new WallPostRequestListener()); } }); public class WallPostRequestListener extends BaseRequestListener { public void onComplete(final String response) { Log.d(“Facebook-Example”, “Got response: ” […]

FacebookCallback.onCancel在尝试使用facebook sdk登录时被调用

我有一个Android应用程序,我正在尝试使用Facebook的SDK(版本4.1.0)来获取令牌并登录。这是我的代码: public class LoginActivity extends Activity { private CallbackManager callbackManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); FacebookSdk.sdkInitialize(getApplicationContext()); callbackManager = CallbackManager.Factory.create(); LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback() { @Override public void onSuccess(LoginResult loginResult) { AccessToken accessToken = loginResult.getAccessToken(); Log.v(TAG, “Facebook login was successful”); String authToken = accessToken.getToken(); // User authToken here: } @Override public void onCancel() { […]

在Android Facebook sdk 3.0上使用proguard时出错

警告:我删除了很多“旧文本”以使问题更加清晰。 如果需要,只需查看历史记录。 我正在使用proguard缩小和混淆使用facebook sdk 3.0的应用程序(我正在使用sdk-version-3.0.2.b标记 )。 我没有使用JAR文件。 相反,我按照文档中的说明在我的工作区中导入了sdk。 在执行的某个时刻,应用程序加载PlacePickerFragment以让用户选择他所在的位置。 为了对此进行编码,我完全遵循了美味的教程 。 当我在不使用proguard情况下生成调试apk时,一切都按预期工作。 但是当我使用proguard生成签名的apk时,它会在PlacePickerFragment使用以下跟踪加载附近的地方时崩溃: E/AndroidRuntime(27472): FATAL EXCEPTION: main E/AndroidRuntime(27472): com.facebook.FacebookGraphObjectException: can’t infer generic type of: interface com.facebook.model.GraphObjectList E/AndroidRuntime(27472): at com.facebook.model.GraphObject$Factory.coerceValueToExpectedType(Unknown Source) E/AndroidRuntime(27472): at com.facebook.model.GraphObject$Factory$GraphObjectProxy.proxyGraphObjectGettersAndSetters(Unknown Source) E/AndroidRuntime(27472): at com.facebook.model.GraphObject$Factory$GraphObjectProxy.invoke(Unknown Source) E/AndroidRuntime(27472): at com.facebook.widget.$Proxy2.getData(Native Method) E/AndroidRuntime(27472): at com.facebook.widget.GraphObjectPagingLoader.addResults(Unknown Source) E/AndroidRuntime(27472): at com.facebook.widget.GraphObjectPagingLoader.requestCompleted(Unknown Source) E/AndroidRuntime(27472): at com.facebook.widget.GraphObjectPagingLoader.access$1(Unknown Source) E/AndroidRuntime(27472): […]

Android Facebook锁屏通知

在Android应用程序的最新版本Facebook上显示锁定屏幕通知function,如此截图: 有没有人试图实现这个? 我知道在锁定屏幕上显示Activity非常简单,但不幸的是它不适用于半透明背景。 基本上它工作,但在我们的活动下面,我们看到启动器屏幕,而不是锁定屏幕(在这种情况下像锁屏也将是透明的)。 我现在尝试的是: getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 在我的活动中。 我也试过这个例子: https : //gist.github.com/daichan4649/5352944 正如我所描述的 – 一切正常但没有透明度。 根据我的观察,Facebook使用主题: @android:style/Theme.Translucent.NoTitleBar 并且没有许可: 此外,我注意到锁定屏幕通知会获取触摸,因此我们无法通过手势显示状态栏中的通知。 任何想法如何在Android L发布之前创建这种通知。

分享图片在viber和facebook中不起作用

我使用下面的代码来共享图像但不幸的是它只适用于Line ,而不适用于Facebook和Viber 码: Intent share = new Intent(android.content.Intent.ACTION_SEND); share.setType(“image/png”); share.putExtra(Intent.EXTRA_STREAM, Uri.parse(G.DIR_APP + “/sample_image.png”)); startActivity(Intent.createChooser(share, “Share image”));

如何将Facebook Connect与Android集成

如何将Facebook Connect和API与Android应用程序集成?

与Unity使用Facebook插件时的ActivityNotFoundException

我正在使用Unity 5.2.2p2,Facebook Unity SDK 7.2.2和Prime31的Android IAB插件2.9。 当我编译我的应用程序并在设备上运行它时,在adb日志中我看到: I/Unity (18149): AndroidJavaException: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.—–.—-/com.facebook.unity.FBUnityLoginActivity}; have you declared this activity in your AndroidManifest.xml? I/Unity (18149): at UnityEngine.AndroidJNISafe.CheckException () [0x00000] in :0 I/Unity (18149): at UnityEngine.AndroidJNISafe.CallStaticVoidMethod (IntPtr clazz, IntPtr methodID, UnityEngine.jvalue[] args) [0x00000] in :0 I/Unity (18149): at UnityEngine.AndroidJavaObject._CallStatic (System.String methodName, System.Object[] args) […]

为我的服务器提供安全的Facebook身份validation

我想构建一个小型移动应用程序(Android和iOS)和一个带有REST Api的小后端服务器。 我的应用用户(Android或iOS)需要在Facebook上登录。 我通过使用facebooks mobile sdk来做到这一点。 登录成功后,facebook sdk将返回authentificationToken,现在位于用户智能手机上。 这个想法如下:每当我的应用程序需要一些数据时,应用程序将通过HTTPS与我的服务器后端(REST)连接。 例如:应用程序进行简单的HTTP GET并传递检索到的Facebook authenticationToken。 我的服务器获取此facebook authenticationToken并使用此令牌来确定用户是否经过身份validation并检索Facebook个人资料信息(名字,姓氏等)。 因此,服务器也与facebook联系,并为HTTP GET请求生成个性化响应。 我的问题是: 是否真的足以为每个REST API调用传递此facebookAuthentication令牌,以使服务器检索正确的关联Facebook用户? 我使用HTTPS,所以我猜,连接足够加密,对吧? 我想我需要一些签名机制,所以签署每个REST API调用(通过HTTPS)以确保仅从我的移动应用程序发送facebookAuthentication令牌。 我会通过使用带有SHA-1的RSA来签署任何REST API调用。 但是这种方法的问题是:客户端需要将私钥存储在App中的某个位置(用于签名请求),服务器知道公钥(用于签名匹配)。 它是否正确? 如果是的话,我认为这是一个很大的安全问题,因为移动应用程序(特别是android)可以被反编译以获取私钥。 如何在我的应用程序中安全地存储此私钥? 是否有其他可以推荐的签名系统? Bt:你知道一个适用于iOS和Android的好的RSA lib吗?

Android – Facebook共享内容被覆盖

这是我在Facebook上分享高分的代码: ShareLinkContent content = new ShareLinkContent.Builder() .setImageUrl(Uri.parse(“http://www.example.com/myicon.png”)) .setContentTitle(“I scored “+numPoints+” points!”) .setContentUrl(Uri.parse(“https://play.google.com/store/apps/details?id=com.my.package”)) .setContentDescription(“Get the game free on Google Play and beat my score.”) .build(); ShareDialog shareDialog = new ShareDialog(this); shareDialog.show(content); 当URL是一些随机网站(如developers.facebook.com)时,这很有用,但是当它是Google Play的链接时,内容标题和内容描述会被覆盖 – 标题会被Play商店的标题和内容描述覆盖是空白的。 那么如何链接到Play商店的应用程序,但保留自定义标题和描述? 我知道这是可能的,因为我见过其他应用程序这样做:

Android Facebook SDK3.0,会话状态为OPENING

我正在尝试使用Facebook SDK 3.0在我的Android应用程序中按下按钮检索访问令牌。 我的Activity中有一个通用按钮,它执行以下操作: Button facebook = (Button)findViewById(R.id.facebookLoginButton); facebook.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Session session = new Session(getApplicationContext()); Session.setActiveSession(session); session.openForRead(new Session.OpenRequest(SignInActivity.this).setCallback(statusCallback)); } }); 然后是回调: private class FacebookSessionStatusCallback implements Session.StatusCallback { @Override public void call(Session session, SessionState state, Exception exception) { String s=session.getAccessToken(); } } 单击该按钮会提示我允许按预期访问我的配置文件,但此回调仅在SessionState为“打开”时调用一次。 在此之后,国家不会改变。 我在这里想念的是什么? 我的最终目标实际上只是获取一次访问令牌,我并不真正关心持久化会话或使用它来登录我的应用程序。