Android应用已停止向Facebook Analytics发送任何事件

时间:2018-10-09 22:08:56

标签: android facebook facebook-android-sdk facebook-events facebook-analytics

对不起,如果我的英语不好!

有人遇到有关fb事件的问题吗?我在Android上有一个应用,该应用已在Google Play中发布。最近,我对其进行了升级,然后发现我的应用已停止将任何事件发送到Google Analytics(分析)。我的更改与facebook SDK没有关联。我只是更改了一些有关某些按钮工作逻辑的代码。

然后,我尝试创建一个新的测试应用程序,并检查它是否将事件发送到了Google Analytics(分析)。起初它起作用了,但是几分钟后又出现了同样的问题。第二天是一样的..我没有看到任何麻醉剂方面的事件。 我已经检查了应用程序中集成SDK的步骤,一切正确。

启动应用程序时,日志中存在一些错误:

11556-11580/com.pattern.eventstest E/GraphResponse: {HttpStatus: 400, errorCode: 100, subErrorCode: 33, errorType: GraphMethodException, errorMessage: Unsupported get request. Object with ID '147657836189003' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api}

但是,如果我正确理解,那是由于具有fb授权按钮的应用程序引起的,但是我没有在我的应用程序中使用它。

在gradle中,我尝试实现'com.facebook.android:facebook-android-sdk:4.36.0''com.facebook.android:facebook-android-sdk:[4,5)',但两者均无法正常工作。

任何人都知道发生什么事了吗

等级

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.pattern.eventstest"
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    implementation 'com.android.support:appcompat-v7:27.0.2'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'junit:junit:4.12'
    implementation 'com.facebook.android:facebook-android-sdk:[4,5)'
    implementation group: 'commons-codec', name: 'commons-codec', version: '1.11'
    implementation 'org.jsoup:jsoup:1.10.3'
}

清单

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

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

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

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
    </application>

</manifest>

字符串

<resources>
    <string name="app_name">Events Test</string>
    <string name="facebook_app_id">147657836189003</string>
    <string name="fb_login_protocol_scheme">fb147657836189003</string>
</resources>

MainActivity

package com.pattern.eventstest;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.facebook.appevents.AppEventsLogger;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        fbAppEvent(this, "onCreate");
    }
    public static void fbAppEvent(Context context, String name) {
        String actName = "app: " + name;
        try {
            AppEventsLogger logger = AppEventsLogger.newLogger(context);
            logger.logEvent(actName);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在fb中: enter image description here

1 个答案:

答案 0 :(得分:2)

请确保您的事件名称与以下正则表达式匹配:

/^[0-9a-zA-Z_][0-9a-zA-Z _-]{0,39}$/

特别是这里有一个错误:

  String actName = "app: " + name;

不允许使用冒号。还请允许我建议使用一个枚举来为您的应用指示不同的操作,而不是字符串。请注意,每个应用最多可以发送1000个自定义事件名称。