2017-05-08 19 views
2

공유 링크 콘텐츠에 대한 설명 및 제목을 추가 해보십시오. 내가 포드를 사용하고 'FacebookShare'(내가 FBSDKShareKit를 사용하는 경우 때문에, 설명 및 제목은 지원되지 않습니다)Facebook 공유 링크 콘텐츠를 사용하여 URL에 설명 및 제목을 추가 할 수 없습니다.

https://i.stack.imgur.com/9p9lp.jpg

'FacebookShare'와이 내 코드 :

 do{ 
      var myContent: LinkShareContent = LinkShareContent(url: NSURL(string:contentUrl!) as! URL) 
      myContent.description = "Some description" 
      myContent.title = "Hello" 

      let shareDialog = ShareDialog(content: myContent) 
      shareDialog.mode = .shareSheet 
      shareDialog.presentingViewController = self 
      shareDialog.failsOnInvalidData = true 
      shareDialog.completion = { result in 
       // Handle share results 
      } 
       try shareDialog.show() 
      } catch { 
       print("Error: \(error)") 
     } 

그러나 내가 볼 수있는 설명과 제목을 사용하는 경우에만 : shareDialog.mode = .native 다른 모든 경우 (.shareSheet, .Web, .Browser, .FeedWeb, .FeedBrowser)의 경우 추가되지 않습니다. 모든 사람이 기본 Facebook 앱을 가지고 있기 때문에 .native 모드를 사용하고 싶지 않습니다. 내 사건에 대한 해결책이 있습니까?

**** 업데이트 ****

는 제목, 설명, 이미지 값을 다른 변수 자체 (나 URL을 공유) 사이트에 적절한 메타 태그를 설정.

답변

0

당신은이처럼 myContentshareDialog 부품을 업데이트해야합니다 :

여기에 정확한 중단 변경 로그를 참조

 let myContent:FBSDKShareLinkContent = FBSDKShareLinkContent() 
     myContent.contentTitle = "Hello" 
     myContent.contentDescription = "Test message" 
     myContent.contentURL = (URL(string: "https://developers.facebook.com")) 

     let shareDialog = FBSDKShareDialog() 
     shareDialog.mode = .shareSheet 
     FBSDKShareDialog.show(from: self, with: myContent, delegate: nil) 

또한 가져 오기 및 페이스 북 공유를 만드는 Social 라이브러리를 사용할 수 있습니다 상자. Facebook 공유 위임 기능으로 공유 결과를 제어하십시오. 이런 식으로 :

import FBSDKShareKit 
import Social 

class YourViewController: UIViewController, FBSDKSharingDelegate { 
    func facebookShareButtonClicked() { 
     let vc = SLComposeViewController(forServiceType:SLServiceTypeFacebook) 
     vc?.add(UIImage(named: "YourImageName")) 
     vc?.add(URL(string: "https://developers.facebook.com")) //Your custom URL 
     vc?.setInitialText("Your sample share message...") 
     self.present(vc!, animated: true, completion: nil) 
    } 

//Facebook share delegate functions: 
    func sharer(_ sharer: FBSDKSharing!, didCompleteWithResults results: [AnyHashable : Any]!) { 
     print("Success") 
    } 

    func sharer(_ sharer: FBSDKSharing!, didFailWithError error: Error!) { 
     print("didFailWithError: ", error) 
    } 

    func sharerDidCancel(_ sharer: FBSDKSharing!) { 
     print("Sharer cancelled") 
    } 
} 

참고 : 기기로 사용해보십시오. 그것은 시뮬레이터에서 작동하지 않습니다. 그리고 Facebook 앱이 장치에 설치되어 있는지 확인하십시오.

+0

소셜 라이브러리를 사용해 보았습니다. 그것은 나 역시 도움이되지 못한다. 공유는 작동했지만 초기 텍스트는 추가되지 않았습니다. 나는 장치를 사용하고있다. Xcode 8.2.1, Swift 3.0. 아마 .native 모드를 사용해야합니다. – DmitriyYefremov

+0

답변을 업데이트했습니다. 나는 당신의 접근 방식으로 그것을 시도했다. 내 대답의 맨 위에있는 코드로 다시 시도해 볼 수 있습니까? – kkakkurt

+2

나는 노력했다. 메소드 myContent.contentTitle, myContent.contentDescription은 그래프 API 2.9에서 사용되지 않습니다. 그래서 나는이 방법들이 사용되지 않는다고 생각합니다. 그리고 페이스 북은 url의 메타 설명으로부터이 필드들을 얻는다. – DmitriyYefremov

2

게시물에 링크를 첨부 할 수있는 방법은 이제 코드 자체가 아닌 독점 메타 태그에서 이미지, 제목 및 설명을 검색합니다. 단순히 경고를 없애고 사이트 자체에 적절한 태그를 설정하기 위해 줄을 제거하십시오.

https://developers.facebook.com/docs/apps/changelog#v2_9_deprecations

1

제목, 설명 및 imageUrl은 최신 Facebook SDK 버전에서 더 이상 사용되지 않고 읽기 전용입니다. 방금 2017 년 4 월부터 오래된 것을 다운로드했고 예상대로 작동합니다.