簡體   English   中英

無法將縮略圖/圖像添加到Facebook應用程序鏈接

[英]Can't add thumbnail/image to Facebook App link

我嘗試將縮略圖添加到Facebook應用程序鏈接,但是甚至找不到有關它的文檔。 可能嗎? 當前代碼(PHP / Laravel)為我提供了一個工作鏈接,如下所示:https:// fb.me/1234567890。 在Facebook上發布時,它也會寫應用程序名稱,但沒有圖像/縮略圖。 我嘗試在http_build_query中放置“圖像”或“縮略圖”參數,但是沒有運氣。

    $url = "https://graph.facebook.com/v2.6/app/app_link_hosts";
$ch = curl_init($url);

# create form post data
$metadata = "?item=" . $request->itemid;

$deepLinkURL = "APP://" . $metadata;

//echo $deepLinkURL;
$androidArray = json_encode(array(array("url"          => $deepLinkURL,
                                    "package" => "com.app.package",
                                    "app_name"     => "APPNAME")
                              )
                       ); 

$iosArray = json_encode(array(array("url"          => $deepLinkURL,
                                    "app_store_id" => 45345345,
                                    "app_name"     => "APPNAME")
                              )
                       );

$webFallbackArray = json_encode(array("should_fallback" => false));


$formQuery = http_build_query(array("access_token" => "1234567890|XXXXXXXXXXXXXXXX",
                                    "name"         => "APPNAME",
                                    "android"      => $androidArray,
                                    "ios"          => $iosArray,
                                    "thumbnail"        => "http://i.imgur.com/upnywSR.jpg",
                                    "web"          => $webFallbackArray)
                              );

  $path = base_path() . "/vendor/phpunit/phpunit/build/ca.pem"; 

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_CAINFO, $path);

# options
curl_setopt($ch, CURLOPT_POST, true); //1
curl_setopt($ch, CURLOPT_POSTFIELDS, $formQuery);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

# get response

$resultStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$jsonResponse = json_decode(curl_exec($ch), true);
curl_close($ch);



# decode response from facebook

$appLinkId = "";



# get appLinkId
foreach ($jsonResponse as $key => $val) {

    # get status
    if($key == "id") {
        $appLinkId = $val;
    }
}

# if response is good, need to request canonical URL from appLinkId
$errorMessage = "";
$canonicalUrl = "";

if(!empty($appLinkId)) {



    # create another instance of cURL to get the appLink object from facebook using the ID generated by the previous post request
    $getAppLinkUrl = "https://graph.facebook.com/" . $appLinkId;
    $ch2 = curl_init($getAppLinkUrl);

    # cURL options
    $queryString = http_build_query(array("access_token" => "206722406330430|XRV38UNZsFfRNNF1EkfikzDWkpk",
                                          "fields"       => "canonical_url",
                                          "pretty"       => true)
                                    );
/////////////////////
$path = base_path() . "/vendor/phpunit/phpunit/build/ca.pem"; 

curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch2, CURLOPT_CAINFO, $path);
/////////////////


    curl_setopt($ch2, CURLOPT_URL, $getAppLinkUrl . "?" . $queryString);
    curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);

    # get response
  //  $urlResponseJson = curl_exec($ch2);
      $urlJsonResponse = json_decode(curl_exec($ch2), true);
    curl_close($ch2);

    # decode response from facebook


    # parse response to get canonical URL
    foreach ($urlJsonResponse as $key => $val) {
        # get canonical URL
        if($key == "canonical_url") {
            $canonicalUrl = $val;
        }
    }

    # check for result
    if(empty($canonicalUrl)) {
        $errorMessage = "Unable to retreive URL.";
    }

} else {
    $errorMessage = "Unable to publish appLink.";
}

# encode response back to your app
if(empty($errorMessage)) {
    $response = json_encode(array("result"        => "success",
                                  "canonical_url" => $canonicalUrl));
} else {
    $response = json_encode(array("result" => "failed",
                                  "errorMessage" => $errorMessage));
}
return $response;

我嘗試將縮略圖添加到Facebook應用程序鏈接,但是甚至找不到有關它的文檔。 可能嗎?

沒有。

正如https://developers.facebook.com/docs/applinks/hosting-api所說,

如果您的應用程序沒有要共享給Facebook的內容的網站,則您沒有公共Web URL,您可以對其進行注釋以支持App Links。 對於這些類型的應用程序,Facebook提供了一個App Links Hosting API,它將為您托管App Links。

因此,如果您有要共享的公共Web URL,則應該使用應用鏈接的meta標簽對其進行注釋-然后它將通過og:image為您為這些URL指定的縮略圖。

如果這不是一個選擇,那么當您通過Feed對話框共享App Link對象的規范URL時,仍然可以嘗試指定縮略圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM