0

营销 API v7.0(java 库: facebook-java-business-sdk.7.0.0

我最近从 v5.0 跳到 v7.0,发现 AdsInsights 类中消失了以下字段:

@SerializedName("hourly_stats_aggregated_by_advertiser_time_zone")
private String mHourlyStatsAggregatedByAdvertiserTimeZone = null;
  
@SerializedName("hourly_stats_aggregated_by_audience_time_zone")
private String mHourlyStatsAggregatedByAudienceTimeZone = null;
 
@SerializedName("product_id") 
private String mProductId = null;

存在这些字段的最后一个库是

 facebook-java-business-sdk.6.0.0

并首先在版本中消失

facebook-java-business-sdk.6.0.4

我检查了更改日志,没有发现有关这些缺失字段的详细信息,这似乎是一个疏忽。知道这些字段是否/何时会返回到最新的 java 库?

谢谢。

4

1 回答 1

0

我们希望通过向 github 项目中的 AdsInsights 类提交代码更改来解决报告的错误,而不是几个月来没有解决这个问题。不幸的是,您不能更改自动生成的类。所以我们想出了一个不同的解决方案,直到自动生成的类被修复。我们创建了一个单独的 maven 项目,它忽略自动生成的 AdsInsights 类文件,并允许我们包含我们自己的“稍微修改”版本的 AdsInsights。我们从 v8.0.1 复制并修改了 AdsInsights,以包含我们需要的缺失数据成员和访问器。我们需要的与问题中的不同,但概念完全相同。如果您不确定要更改什么,请查看 v6.0.0 的源代码,看看它以前的样子。你的 pom 应该使用稍微修改过的 artifactId,以免与你可能已经安装的任何其他版本冲突。我包括了我们创建的 pom 的相关部分。这个解决方案对我们来说非常有效,我们重新添加的功能没有问题。`

<modelVersion>4.0.0</modelVersion>
<groupId>com.facebook.business.sdk</groupId>
<artifactId>facebook-java-business-sdk-yourcompanyname</artifactId>
<packaging>jar</packaging>
<version>8.0.1</version>
<name>facebook-java-business-sdk</name>
<description>A fork of Facebook's Business SDK containing patches/customizations needed for use cases</description>

<distributionManagement>
    <site>
        <id>documentserver</id>
        <url>${distributionManagement.baseUrl}/${project.artifactId}/${project.version}</url>
    </site>
</distributionManagement>

<properties>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <targetJdk>1.7</targetJdk>
</properties>

<dependencies>
    <dependency>
        <groupId>com.facebook.business.sdk</groupId>
        <artifactId>facebook-java-business-sdk</artifactId>
        <version>8.0.1</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-toolchains-plugin</artifactId>
            <version>1.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>toolchain</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <toolchains>
                    <jdk>
                        <version>${targetJdk}</version>
                    </jdk>
                </toolchains>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>${targetJdk}</source>
                <target>${targetJdk}</target>
                <verbose>true</verbose>
                <fork>true</fork>
                <compilerArgs>
                    <arg>-Xlint</arg>
                </compilerArgs>
            </configuration>
        </plugin>
        <!-- This will allow us to overwrite class files in the business SDK with our own versions defined in this project -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>3.1.1</version>
            <executions>
                <execution>
                    <id>unpack</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>com.facebook.business.sdk</groupId>
                                <artifactId>facebook-java-business-sdk</artifactId>
                                <version>8.0.1</version>
                                <type>jar</type>
                                <overWrite>true</overWrite>
                                <outputDirectory>${project.build.directory}/classes</outputDirectory>
                                <excludes>
                                    **/AdsInsights.class
                                </excludes>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

`

于 2020-09-02T17:47:21.513 回答