2016-07-18 19 views
0

Ich habe versucht, dem Facebook App-Link ein Thumbnail hinzuzufügen, kann aber keine Dokumentation darüber finden. Ist es möglich? Der aktuelle Code (PHP/Laravel) gibt mir einen funktionierenden Link, der so aussieht: https: // fb.me/1234567890. Es schreibt den App-Namen auch bei Facebook, aber ohne Bild/Thumbnail. Ich habe versucht, einen "Bild" oder "thumbnail" -Parameter in http_build_query zu setzen, aber ohne Glück.Das Thumbnail/Bild kann nicht zu Facebook hinzugefügt werden App-Link

$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; 

Antwort

0

Ich habe versucht, eine Miniaturansicht auf den Facebook-App-Link hinzufügen, aber nicht einmal Dokumentation darüber finden kann. Ist es möglich?

Nr

Wie https://developers.facebook.com/docs/applinks/hosting-api sagt

Wenn Ihre Anwendung für Inhalte keine Website haben Sie zu Facebook teilen möchten, haben Sie nicht öffentlichen Web-URLs, die Sie kann kommentieren, um App Links zu unterstützen. Für diese Arten von Apps bietet Facebook eine App-Links-Hosting-API, die App-Links für Sie hostet.

Also, wenn Sie öffentliche Web-URLs, die Sie teilen möchten, dann sollten Sie lieber die mit den Meta-Tags für App Verbindungen mit Anmerkungen versehen - dann wird es die Vorschau nehmen Sie für diese URLs über og angegeben: Bild.

Wenn dies keine Option ist, können Sie dennoch versuchen, ein Thumbnail anzugeben, wenn Sie die kanonische URL des App Link-Objekts freigeben, z. über den Feed-Dialog.