标签: android-facebook

fb:// profile/{userid}似乎无法正常工作

我尝试使用特定页面启动Facebook应用程序,它正在使用早期版本的FB APP,但新版本是25.0.0.19.30.此功能无效,uri.parse("fb:// profile/{userid}")的意图将我带到内容不可用的页面.

  • 它是来自facebook的安全更新.

用特定用户页面启动应用程序的任何其他方式.

android facebook android-intent android-facebook

7
推荐指数
1
解决办法
8720
查看次数

关于Android SDK SDK的开发和发布关键哈希的问题

我在FB Developer网站上阅读了这些指南.

创建开发密钥哈希

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Run Code Online (Sandbox Code Playgroud)

并创建一个释放键哈希

keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64
Run Code Online (Sandbox Code Playgroud)

我有6个问题:

  1. 那些Key Hashes做了什么?

  2. 为什么有必要建立两个不同的密钥哈希ReleaseDevelopment

  3. 如果我尚未将我的应用程序发布到PlayStore.我可以使用Release Key而不是使用Development key

  4. 如果我的应用程序在PlayStore中存在,我可以继续使用Development密钥吗?

  5. 我应该投入YOUR_RELEASE_KEY_ALIASYOUR_RELEASE_KEY_PATH?有人可以提供样品吗?

  6. 为什么当我们为iOS开发时,不需要那些关键的哈希?

额外的问题是无关的

这个单点登录按钮有什么作用? 在此输入图像描述

android facebook android-library android-facebook facebook-sdk-4.0

7
推荐指数
1
解决办法
3148
查看次数

facebook登录回调多次触发

我的应用程序正在使用" 共享"按钮分享用户时间线上的故事.我正在做的是,用户点击"共享"按钮,如果用户会话不存在应用程序强制登录用户使用Facebook.当用户这样做时,直接需要发布故事.这是我的代码.

onCreate方法

    isShared = false;
    uiHelper = new UiLifecycleHelper(this, statusCallback);
    uiHelper.onCreate(savedInstanceState);
    Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
    Session session = Session.getActiveSession();
    if (session == null) {

        if (savedInstanceState != null) {
            session = Session.restoreSession(this, null, statusCallback,
                    savedInstanceState);
        }
        if (session == null) {
            session = new Session(this);
        }
        Session.setActiveSession(session);
        if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) {
            session.openForRead(new Session.OpenRequest(this)
                    .setCallback(statusCallback));
        }
    }       

    if (savedInstanceState != null) {
        pendingPublishReauthorization = savedInstanceState.getBoolean(
                PENDING_PUBLISH_KEY, false);
    }

    shareBtn.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            doPostStory();                              
        }
    });
Run Code Online (Sandbox Code Playgroud)

剩下的代码是 -

    private …
Run Code Online (Sandbox Code Playgroud)

android facebook android-facebook

6
推荐指数
1
解决办法
3404
查看次数

尽管app_id正确,但Android facebook applicationId不能为空错误

我知道之前已经问过这个问题,但我的问题是我已经正确设置了Manifest和Strings文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.hellofb"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.hellofb.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="com.hellofb.ApplicationId"
            android:value="@string/app_id" />

        <activity android:name="com.hellofb.LoginActivity" />
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

(为安全起见编辑了app_id字符串)

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Hello FB</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="app_id">18031830547XXXX</string>

</resources>
Run Code Online (Sandbox Code Playgroud)

我可能会出错的任何想法?我有没有机会设置错误的方法?任何正确方向的帮助表示赞赏.

android android-facebook

6
推荐指数
1
解决办法
4105
查看次数

在kitkat android中运行同一个应用程序的多个实例

有没有办法阻止应用程序运行多个实例?我在清单中尝试了单个实例,但没有成功.

我已经制作了一个用于获取Facebook好友的演示应用.它在4.2.2和其他但在kitkat 4.4.2中运行良好,在我登录时,我发送朋友它崩溃,在DDMS应用程序中显示同一个应用程序的多个实例运行.

任何人都可以帮助我或指导什么问题?

这是清单文件

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />


<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:name="com.example.MyApplication" >


    <activity
        android:name=".Splash"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name="com.example.ui.newHome"
        android:screenOrientation="portrait" />


     <activity
        android:name="com.example.ui.FriendsList"
        android:screenOrientation="portrait" />


    <activity
        android:name="com.facebook.LoginActivity"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />

    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/app_id" />
</application>
Run Code Online (Sandbox Code Playgroud)

android facebook facebook-graph-api android-facebook android-4.4-kitkat

6
推荐指数
1
解决办法
579
查看次数

用户改变Facebook的访问令牌,如何获得访问令牌的回拨?

我使用的是Facebook SDK 4.2.我已经实现了AccessTokenTracker接口,如果更改了令牌,它将正常工作.

我的问题是:如果用户使用publish_permission从Android应用程序发布内容.然后我从我的Facebook帐户中删除该权限.现在在app中,令牌从中返回

AccessToken accessToken = AccessToken.getCurrentAccessToken();
Run Code Online (Sandbox Code Playgroud)

此令牌具有publish_permission,但在Facebook服务器上的权限已更改.从该帐户的Facebook帐户中删除权限后.我再次运行我的应用程序.然后我按下分享按钮,然后我收到错误

{FacebookGraphResponseException:(#200)需要扩展权限:publish_actions httpResponseCode:403,facebookErrorCode:200,facebookErrorType:OAuthException,message:(#200)需要扩展权限:publish_actions}

那么如何检查此令牌是否与Facebook服务器令牌匹配.

android facebook facebook-access-token android-facebook

6
推荐指数
1
解决办法
498
查看次数

Facebook android sdk 4.9无法打开共享对话框

我使用facebook android sdk 4.9开发了一个应用程序,我正处于测试阶段.一切顺利,直到我在运行android 4.0.3(API 15)的三星选项卡上测试了应用程序.

我按照确切的指南,但它显示了一个对话框说

"无法通过网络或已安装的Facebook应用程序版本显示提供的内容.某些对话框仅支持启动API 14"

同样,如果该设备具有最新的Facebook应用程序,它的工作原理.但我的猜测是它适用于API 14以及带有/不带Facebook应用程序的所有设备.有任何想法吗?

谢谢

facebook-android-sdk android-facebook facebook-share

6
推荐指数
0
解决办法
785
查看次数

Facebook Deep Linking无法在Android上运行

我试图根据https://developers.facebook.com/docs/app-ads/deep-linking实现Facebook深层链接功能.

我按照一步一步的说明:

  • 创建FB应用程序
  • 将FB sdk(4.13.2)添加到Android应用程序

当我运行应用程序时,它被Facebook检测到,在https://developers.facebook.com/tools/app-ads-helper/上验证

在此输入图像描述 我还创建了一个Activity处理深层链接的人.AndroidManifest配置:

    <activity android:name=".DeeplinkActivity">
        <intent-filter>
            <data
                android:host="deeplink.com"
                android:pathPrefix="/openapp"
                android:scheme="deep" />
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

DeeplinkActivity 如果从adb via:

adb shell am start -W -a android.intent.action.VIEW -d "deep://deeplink.com/openapp" com.example.rps
Run Code Online (Sandbox Code Playgroud)

这是Facebook应用程序设置下的Android配置: 在此输入图像描述

请注意,完全限定的Class Name(com.example.rps.DeeplinkActivity)也不起作用.

我尝试通过Deeplink Tester在App Ads Helper页面上测试深层链接(上面的链接)

在此输入图像描述

我从Facebook应用程序收到手机通知,说"点击以启动你的深层链接",但没有任何反应,我的应用程序永远不会启动.

我错过了什么?

android facebook deep-linking android-facebook facebook-sdk-4.0

6
推荐指数
1
解决办法
2131
查看次数

有没有办法使用 Android 的 LifecycleObserver 来通知 onActivityResult?

我目前LifecycleObserver用于通知诸如onStart我的观点之类的事件。这对于作为演示者或处理程序的组件非常有用,例如FacebookLoginHandler一旦视图准备好就需要注册回调。但是,在某些情况下,正如我提到的那样,我希望我的处理程序处理另一个活动的返回数据。

例子:

当我选择使用 Facebook 登录时,它会启动另一个活动,并将其返回到视图的onActivityResult方法。这让我FacebookLoginHandler在视图中注入 my ,只是将处理委托给它。我想用来LifecycleObserver获得通知onActivityResult并避免将我的处理程序耦合到视图仅用于委派此事件。有没有办法做到这一点?

android android-facebook android-architecture-lifecycle android-architecture-components

6
推荐指数
1
解决办法
1095
查看次数

Android:打开短信意图

在我的 Android 应用程序中,我只需要使用预先填充的message_bodyPhoneNumber打开 SMS 意图。

以下是我正在尝试的代码

Uri uri = Uri.parse(String.format("smsto:%s", strPhoneNumber));
Intent smsIntent = new Intent(Intent.ACTION_SENDTO, uri);
smsIntent.putExtra("sms_body", "Sample Body");
startActivityForResult(smsIntent, OPEN_SMS_APP);
Run Code Online (Sandbox Code Playgroud)

在默认情况下一切都很好,但是如果安装了Facebook Messenger并将其设置为默认的 SMS 应用程序(设置 -> 应用程序和通知 -> 默认应用程序 -> SMS 应用程序),则功能会中断。

问题是,即使它正确选择了电话号码(在 FB Messenger APP 中),它也会在没有message_body(空)的情况下打开FB Messenger。

此外,我尝试了以下测试但没有选择 SMS_BODY 或打开默认的 Android APP

smsIntent.addCategory(Intent.CATEGORY_APP_MESSAGING); // STILL DIDN'T FIX
smsIntent.putExtra(Intent.EXTRA_TEXT, "Sample Body"); // STILL DIDN'T FIX
Run Code Online (Sandbox Code Playgroud)

问题

  1. 即使有人将任何其他 3rd 方 SMS 应用程序设置为默认应用程序,我是否也可以强制打开默认的 Android SMS 应用程序(消息应用程序)?
  2. 或者我可以通过任何其他方式传递 message_body 参数以在其他 3rd 方应用程序中工作吗?

android facebook android-intent android-facebook android-sms

6
推荐指数
1
解决办法
3802
查看次数