mirror of
https://github.com/zhigang1992/facebook-ios-sdk.git
synced 2026-01-12 22:47:16 +08:00
Reviewed By: zsol Differential Revision: D34526295 fbshipit-source-id: f511370dc3186bc396d68a2e6d5e0931facbeb42
145 lines
5.3 KiB
Bash
Executable File
145 lines
5.3 KiB
Bash
Executable File
#!/bin/sh
|
|
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
# All rights reserved.
|
|
#
|
|
# This source code is licensed under the license found in the
|
|
# LICENSE file in the root directory of this source tree.
|
|
|
|
# Note: Use of this script requires Perl
|
|
|
|
# @licenselint-loose-mode
|
|
|
|
#
|
|
# step 1 - confirm we have an app id and app secret to work with
|
|
#
|
|
|
|
if [ -z "$APPID" ]
|
|
then
|
|
echo '$APPID must be exported and set to the application id for the sample before running this script'
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$APPSECRET" ]
|
|
then
|
|
echo '$APPSECRET must be exported set to the app secret for the sample before running this script'
|
|
exit 1
|
|
fi
|
|
|
|
#
|
|
# step 2 - stage images and capture their URIs in variables
|
|
#
|
|
|
|
echo curling...
|
|
|
|
ROCK_IMAGE_URI=` \
|
|
curl -s -k -X POST https://graph.facebook.com/$APPID/staging_resources -F access_token="$APPID|$APPSECRET" -F 'file=@RPSSample/left-rock-128.png;type=image/png' \
|
|
| perl -ne '/"uri":"(.*)"}/ && print $1' `
|
|
|
|
PAPER_IMAGE_URI=` \
|
|
curl -s -k -X POST https://graph.facebook.com/$APPID/staging_resources -F access_token="$APPID|$APPSECRET" -F 'file=@RPSSample/left-paper-128.png;type=image/png' \
|
|
| perl -ne '/"uri":"(.*)"}/ && print $1' `
|
|
|
|
SCISSORS_IMAGE_URI=` \
|
|
curl -s -k -X POST https://graph.facebook.com/$APPID/staging_resources -F access_token="$APPID|$APPSECRET" -F 'file=@RPSSample/left-scissors-128.png;type=image/png' \
|
|
| perl -ne '/"uri":"(.*)"}/ && print $1' `
|
|
|
|
echo "created staged resources..."
|
|
echo " rock=$ROCK_IMAGE_URI"
|
|
echo " paper=$PAPER_IMAGE_URI"
|
|
echo " scissors=$SCISSORS_IMAGE_URI"
|
|
|
|
# step 3 - create facebook host applink page for the app:
|
|
# For mobile only app, facebook provide applink host service to generate a page: https://developers.facebook.com/docs/graph-api/reference/v2.0/app/app_link_hosts
|
|
|
|
echo "creating facebook host applink page for mobile-only app:"
|
|
|
|
FB_APPLINK_HOST_ID=` \
|
|
curl https://graph.facebook.com/app/app_link_hosts -F access_token="$APPID|$APPSECRET" -F pretty=true -F name="RPSSample" \
|
|
-F ios='[
|
|
{
|
|
"url" : "rps-sample-applink-example://",
|
|
"app_store_id" : 794163692,
|
|
"app_name" : "RPS Sample",
|
|
},
|
|
]' \
|
|
-F android=' [
|
|
{
|
|
"package" : "com.facebook.samples.rps",
|
|
"app_name" : "RPS Sample",
|
|
},
|
|
]' \
|
|
-F web=' {
|
|
"should_fallback" : false,
|
|
}' \
|
|
| perl -ne '/"id":\s*"(.*)"/ && print $1'`
|
|
|
|
FB_APPLINK_HOST_URL=` \
|
|
curl -X GET https://graph.facebook.com/v2.0/$FB_APPLINK_HOST_ID?access_token="$APPID|$APPSECRET" \
|
|
| perl -ne '/"canonical_url":\s*"(.*)"/ && print $1' `
|
|
|
|
echo " applink host url id: $FB_APPLINK_HOST_ID"
|
|
echo " applink host url: $FB_APPLINK_HOST_URL"
|
|
|
|
#
|
|
# step 4 - create objects and capture their IDs in variables
|
|
#
|
|
|
|
# rock
|
|
ROCK_OBJID=` \
|
|
curl -s -X POST -F "object={\"title\":\"Rock\",\"description\":\"Breaks scissors, alas is covered by paper.\",\"image\":\"$ROCK_IMAGE_URI\",\"url\":\"$FB_APPLINK_HOST_URL?gesture=rock\"}" "https://graph.facebook.com/$APPID/objects/fb_sample_rps:gesture?access_token=$APPID|$APPSECRET" \
|
|
| perl -ne '/"id":"(.*)"}/ && print $1' `
|
|
|
|
# paper
|
|
PAPER_OBJID=` \
|
|
curl -s -X POST -F "object={\"title\":\"Paper\",\"description\":\"Covers rock, sadly scissors cut it.\",\"image\":\"$PAPER_IMAGE_URI\",\"url\":\"$FB_APPLINK_HOST_URL?gesture=paper\"}" "https://graph.facebook.com/$APPID/objects/fb_sample_rps:gesture?access_token=$APPID|$APPSECRET" \
|
|
| perl -ne '/"id":"(.*)"}/ && print $1' `
|
|
|
|
# scissors
|
|
SCISSORS_OBJID=` \
|
|
curl -s -X POST -F "object={\"title\":\"Scissors\",\"description\":\"Cuts paper, broken by rock -- bother.\",\"image\":\"$SCISSORS_IMAGE_URI\",\"url\":\"$FB_APPLINK_HOST_URL?gesture=scissors\"}" "https://graph.facebook.com/$APPID/objects/fb_sample_rps:gesture?access_token=$APPID|$APPSECRET" \
|
|
| perl -ne '/"id":"(.*)"}/ && print $1' `
|
|
|
|
|
|
#
|
|
# step 5 - echo progress
|
|
#
|
|
|
|
echo "created application objects..."
|
|
echo " rock=$ROCK_OBJID"
|
|
echo " paper=$PAPER_OBJID"
|
|
echo " scissors=$SCISSORS_OBJID"
|
|
|
|
#
|
|
# step 6 - write .m file for common objects
|
|
#
|
|
|
|
MFILE=RPSSample/RPSCommonObjects.m
|
|
|
|
cat > $MFILE << EOF
|
|
// Copyright (c) Meta Platforms, Inc. and affiliates. All rights reserved.
|
|
//
|
|
// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
|
|
// copy, modify, and distribute this software in source code or binary form for use
|
|
// in connection with the web services and APIs provided by Facebook.
|
|
//
|
|
// As with any software that integrates with the Facebook platform, your use of
|
|
// this software is subject to the Facebook Platform Policy
|
|
// [http://developers.facebook.com/policy/]. This copyright notice shall be
|
|
// included in all copies or substantial portions of the software.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
NSString *builtInOpenGraphObjects[3] = {
|
|
@"$ROCK_OBJID", // rock
|
|
@"$PAPER_OBJID", // paper
|
|
@"$SCISSORS_OBJID"}; // scissors
|
|
EOF
|
|
|
|
echo "created $MFILE ..."
|
|
echo done.
|