ゴール:
私は iOS の写真/エンターテイメント アプリを構築していますが、非常に単純な目標があります。Facebook に写真をアップロードし、Facebook の Open Graph ストーリーを使用して写真を共有することです (例: "[ユーザー] [動詞] [アプリ名] を使用して写真を投稿する] 」)。
(iOS 6 ではこれがネイティブに許可されていないことが判明しましたSLComposeViewController
。許可されることを望んでいました。ブー。)
状況:
私は堅牢な Web スペースを持っていないし、それも望んでいないので、ユーザーがタイムライン (など) で Open Graph ストーリーをクリックした場合、Facebook の写真にリンクするだけでよいと思います。
写真をアップロードして、その URL を取得することはできますが、Open Graph ストーリーを機能させることができません。私がいる場所は次のとおりです。
Facebook アルバムへの写真のアップロード: OK
FBRequest
iOS SDKの のrequestForPhotoUpload
メソッド (9 月 17 日現在の最新バージョン) を使用し、 を使用して結果を記録しphotopost
ますbatchEntryName
。これは、基本的に FB Open Graph チュートリアルからそのまま引用したものです。
写真URL取得:OK
ここではFBRequest
のrequestForGraphPath
方法を使用します - ここでも基本的に FB OG チュートリアルに従っています。取得した URL の例を次に示します。
https://sphotos-b.xx.fbcdn.net/hphotos-ash3/<long_number_string_with_underscores>_n.jpg
オープン グラフ ストーリーの公開:機能しません
これにより、次のように OG HTTP リクエストを作成します。
https://<MY_SITE>.herokuapp.com/repeater.php?fb:app_id=<MY_FB_APP_ID>
&og:type=<APP_NAMESPACE>:photo
&og:title=a+rad+photo
&og:description=%22a+rad+photo%22
&og:image=https://sphotos-b.xx.fbcdn.net/hphotos-ash3/<long_number_string_with_underscores>_n.jpg
&og:url=https://sphotos-b.xx.fbcdn.net/hphotos-ash3/<long_number_string_with_underscores>_n.jpg
&body=a+rad+photo
しかし、これはうまくいきません。私が遭遇する問題はベテランには明らかかもしれません: FB の画像がog:type
ofを返しているwebsite
(これは FB のページの静的な OG タグから派生している必要がありますか?)、したがって OG ストーリーは失敗します。
ここで(デバッガーから)私のOG結果を取得できると思います:
https://graph.facebook.com/120073804807493
(また、OG リクエスト全体を として返そうとしましたog:url
が、それは Web サーバーの空白のページにリンクするだけです。以下の repeater.php コードを参照してください。)
それで...どうすればいいですか?どうすればこれを機能させることができますか? ビルドしているのは iOS アプリだけで、ユーザーのフォト アルバムに投稿することだけが目的の場合、画像をホストして表示するためだけに Web プロパティ全体をスピンアップする必要があるのでしょうか?!
詳細情報: repeater.php のソースは次のとおりです (参照: FB OG チュートリアル)。
<?php
function curPageURL() {
$pageURL = 'http://';
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
?>
<html>
<head prefix="og: http://ogp.me/ns# product: http://ogp.me/ns/product#">
<meta property="fb:app_id" content="<?php echo strip_tags($_REQUEST['fb:app_id']);?>">
<meta property="og:url" content="<?php echo strip_tags($_REQUEST['og:url']);?>">
<meta property="og:type" content="<?php echo strip_tags($_REQUEST['og:type']);?>">
<meta property="og:title" content="<?php echo strip_tags($_REQUEST['og:title']);?>">
<meta property="og:image" content="<?php echo strip_tags($_REQUEST['og:image']);?>">
<meta property="og:description" content="<?php echo strip_tags($_REQUEST['og:description']);?>">
</head>
<body>
<?php echo strip_tags($_REQUEST['body']);?>
</body>
</html>